From 11c14e192b907acd3fdc2d6a9bcf4faafc593afe Mon Sep 17 00:00:00 2001
From: Rafael Cavazin <rafaelcavazin@gmail.com>
Date: Sun, 27 Jan 2013 11:13:06 -0500
Subject: [PATCH] updating latest props, and some pt-br fixing

---
 src/com/gitblit/wicket/pages/EditRepositoryPage.java |   47 +++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index 9de8244..d68d655 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -94,7 +94,7 @@
 			// personal create permissions, inject personal repository path
 			model.name = user.getPersonalPath() + "/";
 			model.projectPath = user.getPersonalPath();
-			model.owner = user.username;
+			model.addOwner(user.username);
 			// personal repositories are private by default
 			model.accessRestriction = AccessRestrictionType.VIEW;
 			model.authorizationControl = AuthorizationControl.NAMED;
@@ -164,6 +164,12 @@
 		final RegistrantPermissionsPanel teamsPalette = new RegistrantPermissionsPanel("teams", 
 				RegistrantType.TEAM, GitBlit.self().getAllTeamnames(), repositoryTeams, getAccessPermissions());
 
+		// owners palette
+		List<String> owners = new ArrayList<String>(repositoryModel.owners);
+		List<String> persons = GitBlit.self().getAllUsernames();
+		final Palette<String> ownersPalette = new Palette<String>("owners", new ListModel<String>(owners), new CollectionModel<String>(
+		      persons), new StringChoiceRenderer(), 12, true);
+		
 		// indexed local branches palette
 		List<String> allLocalBranches = new ArrayList<String>();
 		allLocalBranches.add(Constants.DEFAULT_BRANCH);
@@ -326,6 +332,13 @@
 					}
 					repositoryModel.indexedBranches = indexedBranches;
 
+					// owners
+					repositoryModel.owners.clear();
+					Iterator<String> owners = ownersPalette.getSelectedChoices();
+					while (owners.hasNext()) {
+						repositoryModel.addOwner(owners.next());
+					}
+					
 					// pre-receive scripts
 					List<String> preReceiveScripts = new ArrayList<String>();
 					Iterator<String> pres = preReceivePalette.getSelectedChoices();
@@ -377,8 +390,7 @@
 		// field names reflective match RepositoryModel fields
 		form.add(new TextField<String>("name").setEnabled(allowEditName));
 		form.add(new TextField<String>("description"));
-		form.add(new DropDownChoice<String>("owner", GitBlit.self().getAllUsernames())
-				.setEnabled(GitBlitWebSession.get().canAdmin() && !repositoryModel.isPersonalRepository()));
+		form.add(ownersPalette);
 		form.add(new CheckBox("allowForks").setEnabled(GitBlit.getBoolean(Keys.web.allowForking, true)));
 		DropDownChoice<AccessRestrictionType> accessRestriction = new DropDownChoice<AccessRestrictionType>("accessRestriction", Arrays
 				.asList(AccessRestrictionType.values()), new AccessRestrictionRenderer());
@@ -414,6 +426,9 @@
 		form.add(new CheckBox("showReadme"));
 		form.add(new CheckBox("skipSizeCalculation"));
 		form.add(new CheckBox("skipSummaryMetrics"));
+		List<Integer> maxActivityCommits  = Arrays.asList(-1, 0, 25, 50, 75, 100, 150, 200, 250, 500 );
+		form.add(new DropDownChoice<Integer>("maxActivityCommits", maxActivityCommits, new MaxActivityCommitsRenderer()));
+
 		mailingLists = new Model<String>(ArrayUtils.isEmpty(repositoryModel.mailingLists) ? ""
 				: StringUtils.flattenStrings(repositoryModel.mailingLists, " "));
 		form.add(new TextField<String>("mailingLists", mailingLists));
@@ -556,7 +571,7 @@
 						isAdmin = true;
 						return;
 					} else {
-						if (!model.owner.equalsIgnoreCase(user.username)) {
+						if (!model.isOwner(user.username)) {
 							// User is not an Admin nor Owner
 							error(getString("gb.errorOnlyAdminOrOwnerMayEditRepository"), true);
 						}
@@ -654,4 +669,28 @@
 		}
 	}
 	
+	private class MaxActivityCommitsRenderer implements IChoiceRenderer<Integer> {
+
+		private static final long serialVersionUID = 1L;
+
+		public MaxActivityCommitsRenderer() {
+		}
+
+		@Override
+		public String getDisplayValue(Integer value) {
+			if (value == -1) {
+				return getString("gb.excludeFromActivity");
+			} else if (value == 0) {
+				return getString("gb.noMaximum");
+			} else {
+				return value + " " + getString("gb.commits");
+			}
+		}
+
+		@Override
+		public String getIdValue(Integer value, int index) {
+			return Integer.toString(index);
+		}
+	}
+	
 }

--
Gitblit v1.9.1