From 8bc725871269aa47f8ef6db086a4cfedc75ef140 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 29 Oct 2012 09:19:03 -0400
Subject: [PATCH] Use repository swatch coloring in registrant permissions panel

---
 src/com/gitblit/wicket/pages/EditRepositoryPage.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index 4e34d89..1a2e63c 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -54,9 +54,8 @@
 import com.gitblit.GitBlit;
 import com.gitblit.GitBlitException;
 import com.gitblit.Keys;
+import com.gitblit.models.RegistrantAccessPermission;
 import com.gitblit.models.RepositoryModel;
-import com.gitblit.models.TeamAccessPermission;
-import com.gitblit.models.UserAccessPermission;
 import com.gitblit.models.UserModel;
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.StringUtils;
@@ -64,8 +63,7 @@
 import com.gitblit.wicket.StringChoiceRenderer;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.BulletListPanel;
-import com.gitblit.wicket.panels.TeamPermissionsPanel;
-import com.gitblit.wicket.panels.UserPermissionsPanel;
+import com.gitblit.wicket.panels.RegistrantPermissionsPanel;
 
 public class EditRepositoryPage extends RootSubPage {
 
@@ -117,14 +115,15 @@
 
 		List<String> indexedBranches = new ArrayList<String>();
 		List<String> federationSets = new ArrayList<String>();
-		final List<UserAccessPermission> repositoryUsers = new ArrayList<UserAccessPermission>();
-		final List<TeamAccessPermission> repositoryTeams = new ArrayList<TeamAccessPermission>();
+		final List<RegistrantAccessPermission> repositoryUsers = new ArrayList<RegistrantAccessPermission>();
+		final List<RegistrantAccessPermission> repositoryTeams = new ArrayList<RegistrantAccessPermission>();
 		List<String> preReceiveScripts = new ArrayList<String>();
 		List<String> postReceiveScripts = new ArrayList<String>();
 
 		GitBlitWebSession session = GitBlitWebSession.get();
 		final UserModel user = session.getUser() == null ? UserModel.ANONYMOUS : session.getUser();
-
+		final boolean allowEditName = isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username);
+		
 		if (isCreate) {
 			if (user.canAdmin()) {
 				super.setupPage(getString("gb.newRepository"), "");
@@ -146,8 +145,10 @@
 
 		final String oldName = repositoryModel.name;
 
-		UserPermissionsPanel usersPalette = new UserPermissionsPanel("users", repositoryUsers, getAccessPermissions());
-		TeamPermissionsPanel teamsPalette = new TeamPermissionsPanel("teams", repositoryTeams, getAccessPermissions());
+		RegistrantPermissionsPanel usersPalette = new RegistrantPermissionsPanel("users", 
+				GitBlit.self().getAllUsernames(), repositoryUsers, getAccessPermissions());
+		RegistrantPermissionsPanel teamsPalette = new RegistrantPermissionsPanel("teams", 
+				GitBlit.self().getAllTeamnames(), repositoryTeams, getAccessPermissions());
 
 		// indexed local branches palette
 		List<String> allLocalBranches = new ArrayList<String>();
@@ -253,7 +254,7 @@
 						return;
 					}
 					
-					if (user.canCreate() && !user.canAdmin()) {
+					if (user.canCreate() && !user.canAdmin() && allowEditName) {
 						// ensure repository name begins with the user's path
 						if (!repositoryModel.name.startsWith(user.getPersonalPath())) {
 							error(MessageFormat.format(getString("gb.illegalPersonalRepositoryLocation"),
@@ -360,7 +361,7 @@
 		form.add(new SimpleAttributeModifier("autocomplete", "off"));
 
 		// field names reflective match RepositoryModel fields
-		form.add(new TextField<String>("name").setEnabled(isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username)));
+		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()));
@@ -378,6 +379,10 @@
 		}
 		form.add(new DropDownChoice<String>("HEAD", availableRefs).setEnabled(availableRefs.size() > 0));
 
+		List<String> gcPeriods = Arrays.asList("1 day", "2 days", "3 days", "4 days", "5 days", "7 days", "10 days", "14 days");
+		form.add(new DropDownChoice<String>("gcPeriod", gcPeriods));
+		form.add(new TextField<String>("gcThreshold"));
+
 		// federation strategies - remove ORIGIN choice if this repository has
 		// no origin.
 		List<FederationStrategy> federationStrategies = new ArrayList<FederationStrategy>(

--
Gitblit v1.9.1