From a4231d30c4d2765c80f57df79cd1d4d39a9795ea Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Tue, 30 Oct 2012 17:05:30 -0400
Subject: [PATCH] Added null checkinng and logging for edit user permissions (issue 155)

---
 src/com/gitblit/wicket/pages/EditRepositoryPage.java |   35 ++++++++++++++++++++++++++++++++---
 1 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
index 58fdf66..cc0db68 100644
--- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java
+++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -115,6 +115,11 @@
 		setStatelessHint(false);
 		setOutputMarkupId(true);
 	}
+	
+	@Override
+	protected boolean requiresPageMap() {
+		return true;
+	}
 
 	protected void setupPage(RepositoryModel model) {
 		this.repositoryModel = model;
@@ -389,9 +394,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"));
+		boolean gcEnabled = GitBlit.getBoolean(Keys.git.enableGarbageCollection, false); 
+		List<Integer> gcPeriods = Arrays.asList(1, 2, 3, 4, 5, 7, 10, 14 );
+		form.add(new DropDownChoice<Integer>("gcPeriod", gcPeriods, new GCPeriodRenderer()).setEnabled(gcEnabled));
+		form.add(new TextField<String>("gcThreshold").setEnabled(gcEnabled));
 
 		// federation strategies - remove ORIGIN choice if this repository has
 		// no origin.
@@ -619,4 +625,27 @@
 			return Integer.toString(index);
 		}
 	}
+	
+	private class GCPeriodRenderer implements IChoiceRenderer<Integer> {
+
+		private static final long serialVersionUID = 1L;
+
+		public GCPeriodRenderer() {
+		}
+
+		@Override
+		public String getDisplayValue(Integer value) {
+			if (value == 1) {
+				return getString("gb.duration.oneDay");
+			} else {
+				return MessageFormat.format(getString("gb.duration.days"), value);
+			}
+		}
+
+		@Override
+		public String getIdValue(Integer value, int index) {
+			return Integer.toString(index);
+		}
+	}
+	
 }

--
Gitblit v1.9.1