From 871ea2592a9798aa078b19ba37cd6a87990e1712 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 08 Sep 2014 18:06:46 -0400
Subject: [PATCH] Merge branch 'ticket/174' into develop

---
 src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java |  100 +++++++++++++++-----------------------------------
 1 files changed, 30 insertions(+), 70 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
index 16dac89..318b2b7 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -43,7 +43,6 @@
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
-import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
@@ -71,9 +70,12 @@
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.AccessPolicyPanel;
 import com.gitblit.wicket.panels.BasePanel.JavascriptEventConfirmation;
+import com.gitblit.wicket.panels.BooleanOption;
 import com.gitblit.wicket.panels.BulletListPanel;
+import com.gitblit.wicket.panels.ChoiceOption;
 import com.gitblit.wicket.panels.RegistrantPermissionsPanel;
 import com.gitblit.wicket.panels.RepositoryNamePanel;
+import com.gitblit.wicket.panels.TextOption;
 
 public class EditRepositoryPage extends RootSubPage {
 
@@ -184,15 +186,18 @@
 
 		// owners palette
 		List<UserChoice> owners = new ArrayList<UserChoice>();
+		List<UserChoice> persons = new ArrayList<UserChoice>();
 		for (String owner : repositoryModel.owners) {
 			UserModel o = app().users().getUserModel(owner);
 			if (o != null) {
 				owners.add(new UserChoice(o.getDisplayName(), o.username, o.emailAddress));
 			} else {
-				owners.add(new UserChoice(owner));
+				UserChoice userChoice = new UserChoice(owner);
+				owners.add(userChoice);
+				persons.add(userChoice);
 			}
 		}
-		List<UserChoice> persons = new ArrayList<UserChoice>();
+
 		for (String person : app().users().getAllUsernames()) {
 			UserModel o = app().users().getUserModel(person);
 			if (o != null) {
@@ -381,7 +386,6 @@
 					}
 				} catch (GitBlitException e) {
 					error(e.getMessage());
-					namePanel.resetModel(repositoryModel);
 					return;
 				}
 				setRedirect(false);
@@ -417,7 +421,7 @@
 
 		// XXX AccessPolicyPanel is defined later.
 
-		form.add(newChoice("head",
+		form.add(new ChoiceOption<String>("head",
 				getString("gb.headRef"),
 				getString("gb.headRefDescription"),
 				new PropertyModel<String>(repositoryModel, "HEAD"),
@@ -434,22 +438,22 @@
 		//
 		// TICKETS
 		//
-		form.add(newCheckbox("acceptNewPatchsets",
+		form.add(new BooleanOption("acceptNewPatchsets",
 				getString("gb.acceptNewPatchsets"),
 				getString("gb.acceptNewPatchsetsDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "acceptNewPatchsets")));
 
-		form.add(newCheckbox("acceptNewTickets",
+		form.add(new BooleanOption("acceptNewTickets",
 				getString("gb.acceptNewTickets"),
 				getString("gb.acceptNewTicketsDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "acceptNewPatchsets")));
 
-		form.add(newCheckbox("requireApproval",
+		form.add(new BooleanOption("requireApproval",
 				getString("gb.requireApproval"),
 				getString("gb.requireApprovalDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "requireApproval")));
 
-		form.add(newChoice("mergeTo",
+		form.add(new ChoiceOption<String>("mergeTo",
 				getString("gb.mergeTo"),
 				getString("gb.mergeToDescription"),
 				new PropertyModel<String>(repositoryModel, "mergeTo"),
@@ -458,22 +462,22 @@
 		//
 		// RECEIVE
 		//
-		form.add(newCheckbox("isFrozen",
+		form.add(new BooleanOption("isFrozen",
 				getString("gb.isFrozen"),
 				getString("gb.isFrozenDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "isFrozen")));
 
-		form.add(newCheckbox("incrementalPushTags",
+		form.add(new BooleanOption("incrementalPushTags",
 				getString("gb.enableIncrementalPushTags"),
 				getString("gb.useIncrementalPushTagsDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "useIncrementalPushTags")));
 
 		final CheckBox verifyCommitter = new CheckBox("checkbox", new PropertyModel<Boolean>(repositoryModel, "verifyCommitter"));
 		verifyCommitter.setOutputMarkupId(true);
-		form.add(newCheckbox("verifyCommitter",
+		form.add(new BooleanOption("verifyCommitter",
 				getString("gb.verifyCommitter"),
-				getString("gb.verifyCommitterDescription"),
-				verifyCommitter));
+				getString("gb.verifyCommitterDescription") + "<br/>" + getString("gb.verifyCommitterNote"),
+				verifyCommitter).setIsHtmlDescription(true));
 
 		form.add(preReceivePalette);
 		form.add(new BulletListPanel("inheritedPreReceive", getString("gb.inherited"), app().repositories()
@@ -496,7 +500,7 @@
 			federationStrategies.remove(FederationStrategy.FEDERATE_ORIGIN);
 		}
 
-		form.add(newChoice("federationStrategy",
+		form.add(new ChoiceOption<FederationStrategy>("federationStrategy",
 				getString("gb.federationStrategy"),
 				getString("gb.federationStrategyDescription"),
 				new DropDownChoice<FederationStrategy>(
@@ -521,7 +525,7 @@
 			repositoryModel.gcPeriod = defaultGcPeriod;
 		}
 		List<Integer> gcPeriods = Arrays.asList(1, 2, 3, 4, 5, 7, 10, 14 );
-		form.add(newChoice("gcPeriod",
+		form.add(new ChoiceOption<Integer>("gcPeriod",
 				getString("gb.gcPeriod"),
 				getString("gb.gcPeriodDescription"),
 				new DropDownChoice<Integer>("choice",
@@ -529,7 +533,7 @@
 						gcPeriods,
 						new GCPeriodRenderer())).setEnabled(gcEnabled));
 
-		form.add(newTextfield("gcThreshold",
+		form.add(new TextOption("gcThreshold",
 				getString("gb.gcThreshold"),
 				getString("gb.gcThresholdDescription"),
 				"span1",
@@ -539,29 +543,29 @@
 		// MISCELLANEOUS
 		//
 
-		form.add(newTextfield("origin",
+		form.add(new TextOption("origin",
 				getString("gb.origin"),
 				getString("gb.originDescription"),
 				"span6",
 				new PropertyModel<String>(repositoryModel, "origin")).setEnabled(false));
 
-		form.add(newCheckbox("showRemoteBranches",
+		form.add(new BooleanOption("showRemoteBranches",
 				getString("gb.showRemoteBranches"),
 				getString("gb.showRemoteBranchesDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "showRemoteBranches")));
 
-		form.add(newCheckbox("skipSizeCalculation",
+		form.add(new BooleanOption("skipSizeCalculation",
 				getString("gb.skipSizeCalculation"),
 				getString("gb.skipSizeCalculationDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "skipSizeCalculation")));
 
-		form.add(newCheckbox("skipSummaryMetrics",
+		form.add(new BooleanOption("skipSummaryMetrics",
 				getString("gb.skipSummaryMetrics"),
 				getString("gb.skipSummaryMetricsDescription"),
 				new PropertyModel<Boolean>(repositoryModel, "skipSummaryMetrics")));
 
 		List<Integer> maxActivityCommits  = Arrays.asList(-1, 0, 25, 50, 75, 100, 150, 200, 250, 500);
-		form.add(newChoice("maxActivityCommits",
+		form.add(new ChoiceOption<Integer>("maxActivityCommits",
 				getString("gb.maxActivityCommits"),
 				getString("gb.maxActivityCommitsDescription"),
 				new DropDownChoice<Integer>("choice",
@@ -570,7 +574,7 @@
 						new MaxActivityCommitsRenderer())));
 
 		List<CommitMessageRenderer> renderers = Arrays.asList(CommitMessageRenderer.values());
-		form.add(newChoice("commitMessageRenderer",
+		form.add(new ChoiceOption<CommitMessageRenderer>("commitMessageRenderer",
 				getString("gb.commitMessageRenderer"),
 				getString("gb.commitMessageRendererDescription"),
 				new DropDownChoice<CommitMessageRenderer>("choice",
@@ -580,7 +584,7 @@
 		metricAuthorExclusions = new Model<String>(ArrayUtils.isEmpty(repositoryModel.metricAuthorExclusions) ? ""
 				: StringUtils.flattenStrings(repositoryModel.metricAuthorExclusions, " "));
 
-		form.add(newTextfield("metricAuthorExclusions",
+		form.add(new TextOption("metricAuthorExclusions",
 				getString("gb.metricAuthorExclusions"),
 				getString("gb.metricAuthorExclusions"),
 				"span6",
@@ -589,7 +593,7 @@
 		mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? ""
 				: StringUtils.flattenStrings(repositoryModel.mailingLists, " "));
 
-		form.add(newTextfield("mailingLists",
+		form.add(new TextOption("mailingLists",
 				getString("gb.mailingLists"),
 				getString("gb.mailingLists"),
 				"span6",
@@ -677,7 +681,7 @@
 				RepositoryModel latestModel = app().repositories().getRepositoryModel(repositoryModel.name);
 				boolean canDelete = app().repositories().canDelete(latestModel);
 				if (canDelete) {
-					if (app().repositories().deleteRepositoryModel(latestModel)) {
+					if (app().gitblit().deleteRepositoryModel(latestModel)) {
 						info(MessageFormat.format(getString("gb.repositoryDeleted"), latestModel));
 						if (latestModel.isPersonalRepository()) {
 							// redirect to user's profile page
@@ -750,50 +754,6 @@
 			// No Administration Permitted
 			error(getString("gb.errorAdministrationDisabled"), true);
 		}
-	}
-
-	private Fragment newCheckbox(String wicketId, String title, String description, IModel<Boolean> model) {
-		Fragment fragment = new Fragment(wicketId, "checkboxOption", this);
-		fragment.add(new Label("name", title));
-		fragment.add(new Label("description", description));
-		fragment.add(new CheckBox("checkbox", model));
-		return fragment;
-	}
-
-	private Fragment newCheckbox(String wicketId, String title, String description, CheckBox checkbox) {
-		Fragment fragment = new Fragment(wicketId, "checkboxOption", this);
-		fragment.add(new Label("name", title));
-		fragment.add(new Label("description", description));
-		fragment.add(checkbox);
-		return fragment;
-	}
-
-	private <T> Fragment newChoice(String wicketId, String title, String description, IModel<T> model, List<T> choices) {
-		Fragment fragment = new Fragment(wicketId, "choiceOption", this);
-		fragment.add(new Label("name", title));
-		fragment.add(new Label("description", description));
-		fragment.add(new DropDownChoice<>("choice", model, choices).setEnabled(choices.size() > 0));
-		return fragment;
-	}
-
-	private <T> Fragment newChoice(String wicketId, String title, String description, DropDownChoice<?> choice) {
-		Fragment fragment = new Fragment(wicketId, "choiceOption", this);
-		fragment.add(new Label("name", title));
-		fragment.add(new Label("description", description));
-		fragment.add(choice.setEnabled(choice.getChoices().size() > 0));
-		return fragment;
-	}
-
-	private Fragment newTextfield(String wicketId, String title, String description, String css, IModel<String> model) {
-		Fragment fragment = new Fragment(wicketId, "textfieldOption", this);
-		fragment.add(new Label("name", title));
-		fragment.add(new Label("description", description));
-		TextField<String> tf = new TextField<String>("text", model);
-		if (!StringUtils.isEmpty(css)) {
-			WicketUtils.setCssClass(tf, css);
-		}
-		fragment.add(tf);
-		return fragment;
 	}
 
 

--
Gitblit v1.9.1