From b94965e87929c6b4e42f9a2078dc0d910cc2637d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 09 May 2012 07:59:00 -0400 Subject: [PATCH] Merge pull request #17 from peterloron/master --- src/com/gitblit/wicket/pages/EditRepositoryPage.java | 46 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java index 1eae2c9..af1b2b4 100644 --- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java +++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java @@ -42,6 +42,7 @@ import com.gitblit.Constants.AccessRestrictionType; import com.gitblit.Constants.FederationStrategy; +import com.gitblit.Constants; import com.gitblit.GitBlit; import com.gitblit.GitBlitException; import com.gitblit.Keys; @@ -82,6 +83,7 @@ // ensure this user can create or edit this repository checkPermissions(repositoryModel); + List<String> indexedBranches = new ArrayList<String>(); List<String> federationSets = new ArrayList<String>(); List<String> repositoryUsers = new ArrayList<String>(); List<String> repositoryTeams = new ArrayList<String>(); @@ -98,6 +100,9 @@ Collections.sort(repositoryUsers); } federationSets.addAll(repositoryModel.federationSets); + if (!ArrayUtils.isEmpty(repositoryModel.indexedBranches)) { + indexedBranches.addAll(repositoryModel.indexedBranches); + } } final String oldName = repositoryModel.name; @@ -109,13 +114,23 @@ // teams palette final Palette<String> teamsPalette = new Palette<String>("teams", new ListModel<String>( repositoryTeams), new CollectionModel<String>(GitBlit.self().getAllTeamnames()), - new StringChoiceRenderer(), 5, false); + new StringChoiceRenderer(), 8, false); + // indexed local branches palette + List<String> allLocalBranches = new ArrayList<String>(); + allLocalBranches.add(Constants.DEFAULT_BRANCH); + allLocalBranches.addAll(repositoryModel.getLocalBranches()); + boolean luceneEnabled = GitBlit.getBoolean(Keys.web.allowLuceneIndexing, true); + final Palette<String> indexedBranchesPalette = new Palette<String>("indexedBranches", new ListModel<String>( + indexedBranches), new CollectionModel<String>(allLocalBranches), + new StringChoiceRenderer(), 8, false); + indexedBranchesPalette.setEnabled(luceneEnabled); + // federation sets palette List<String> sets = GitBlit.getStrings(Keys.federation.sets); final Palette<String> federationSetsPalette = new Palette<String>("federationSets", new ListModel<String>(federationSets), new CollectionModel<String>(sets), - new StringChoiceRenderer(), 5, false); + new StringChoiceRenderer(), 8, false); // pre-receive palette if (!ArrayUtils.isEmpty(repositoryModel.preReceiveScripts)) { @@ -146,7 +161,7 @@ try { // confirm a repository name was entered if (StringUtils.isEmpty(repositoryModel.name)) { - error("Please set repository name!"); + error(getString("gb.pleaseSetRepositoryName")); return; } @@ -157,35 +172,35 @@ // prohibit folder paths if (repositoryModel.name.startsWith("/")) { - error("Leading root folder references (/) are prohibited."); + error(getString("gb.illegalLeadingSlash")); return; } if (repositoryModel.name.startsWith("../")) { - error("Relative folder references (../) are prohibited."); + error(getString("gb.illegalRelativeSlash")); return; } if (repositoryModel.name.contains("/../")) { - error("Relative folder references (../) are prohibited."); + error(getString("gb.illegalRelativeSlash")); return; } // confirm valid characters in repository name Character c = StringUtils.findInvalidCharacter(repositoryModel.name); if (c != null) { - error(MessageFormat.format("Illegal character ''{0}'' in repository name!", + error(MessageFormat.format(getString("gb.illegalCharacterRepositoryName"), c)); return; } // confirm access restriction selection if (repositoryModel.accessRestriction == null) { - error("Please select access restriction!"); + error(getString("gb.selectAccessRestriction")); return; } // confirm federation strategy selection if (repositoryModel.federationStrategy == null) { - error("Please select federation strategy!"); + error(getString("gb.selectFederationStrategy")); return; } @@ -210,6 +225,14 @@ } repositoryModel.mailingLists = new ArrayList<String>(list); } + + // indexed branches + List<String> indexedBranches = new ArrayList<String>(); + Iterator<String> branches = indexedBranchesPalette.getSelectedChoices(); + while (branches.hasNext()) { + indexedBranches.add(branches.next()); + } + repositoryModel.indexedBranches = indexedBranches; // pre-receive scripts List<String> preReceiveScripts = new ArrayList<String>(); @@ -281,7 +304,7 @@ if (!ArrayUtils.isEmpty(repositoryModel.availableRefs)) { availableRefs.addAll(repositoryModel.availableRefs); } - form.add(new DropDownChoice<String>("HEAD", availableRefs).setEnabled(!isCreate)); + form.add(new DropDownChoice<String>("HEAD", availableRefs).setEnabled(availableRefs.size() > 0)); // federation strategies - remove ORIGIN choice if this repository has // no origin. @@ -293,7 +316,7 @@ form.add(new DropDownChoice<FederationStrategy>("federationStrategy", federationStrategies, new FederationTypeRenderer())); form.add(new CheckBox("useTickets")); - form.add(new CheckBox("useDocs")); + form.add(new CheckBox("useDocs")); form.add(new CheckBox("showRemoteBranches")); form.add(new CheckBox("showReadme")); form.add(new CheckBox("skipSizeCalculation")); @@ -301,6 +324,7 @@ mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? "" : StringUtils.flattenStrings(repositoryModel.mailingLists, " ")); form.add(new TextField<String>("mailingLists", mailingLists)); + form.add(indexedBranchesPalette); form.add(usersPalette); form.add(teamsPalette); form.add(federationSetsPalette); -- Gitblit v1.9.1