From 5abe3350a38b3cdfc28ac2839860d28b88f2306a Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 24 Jun 2013 14:02:54 -0400
Subject: [PATCH] Improve time filter language and handling of daysBack parameter

---
 src/main/java/com/gitblit/wicket/pages/RootPage.java |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/RootPage.java b/src/main/java/com/gitblit/wicket/pages/RootPage.java
index 8760f5c..f4ac907 100644
--- a/src/main/java/com/gitblit/wicket/pages/RootPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/RootPage.java
@@ -52,6 +52,7 @@
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.PageRegistration;
 import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
+import com.gitblit.wicket.PageRegistration.DropDownToggleItem;
 import com.gitblit.wicket.SessionlessForm;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.GravatarImage;
@@ -256,7 +257,7 @@
 			List<String> sets = new ArrayList<String>(setMap.keySet());
 			Collections.sort(sets);
 			for (String set : sets) {
-				filters.add(new DropDownMenuItem(MessageFormat.format("{0} ({1})", set,
+				filters.add(new DropDownToggleItem(MessageFormat.format("{0} ({1})", set,
 						setMap.get(set).get()), "set", set, params));
 			}
 			// divider
@@ -268,7 +269,7 @@
 			List<TeamModel> teams = new ArrayList<TeamModel>(user.teams);
 			Collections.sort(teams);
 			for (TeamModel team : teams) {
-				filters.add(new DropDownMenuItem(MessageFormat.format("{0} ({1})", team.name,
+				filters.add(new DropDownToggleItem(MessageFormat.format("{0} ({1})", team.name,
 						team.repositories.size()), "team", team.name, params));
 			}
 			// divider
@@ -283,7 +284,7 @@
 			for (String expression : expressions) {
 				if (!StringUtils.isEmpty(expression)) {
 					addedExpression = true;
-					filters.add(new DropDownMenuItem(null, "x", expression, params));
+					filters.add(new DropDownToggleItem(null, "x", expression, params));
 				}
 			}
 			// if we added any custom expressions, add a divider
@@ -300,7 +301,7 @@
 		if (daysBack < 1) {
 			daysBack = 7;
 		}
-		PageParameters clonedParams;;
+		PageParameters clonedParams;
 		if (params == null) {
 			clonedParams = new PageParameters();
 		} else {
@@ -314,14 +315,18 @@
 		List<DropDownMenuItem> items = new ArrayList<DropDownMenuItem>();
 		Set<Integer> choicesSet = new TreeSet<Integer>(GitBlit.getIntegers(Keys.web.activityDurationChoices));
 		if (choicesSet.isEmpty()) {
-			 choicesSet.addAll(Arrays.asList(7, 14, 28, 60, 90, 180));
+			 choicesSet.addAll(Arrays.asList(1, 3, 7, 14, 21, 28));
 		}
 		List<Integer> choices = new ArrayList<Integer>(choicesSet);
 		Collections.sort(choices);
 		String lastDaysPattern = getString("gb.lastNDays");
 		for (Integer db : choices) {
-			String txt = MessageFormat.format(lastDaysPattern, db);
-			items.add(new DropDownMenuItem(txt, "db", db.toString(), clonedParams));
+			if (db == 1) {
+				items.add(new DropDownMenuItem(getString("gb.time.today"), "db", db.toString(), clonedParams));
+			} else {
+				String txt = MessageFormat.format(lastDaysPattern, db);
+				items.add(new DropDownMenuItem(txt, "db", db.toString(), clonedParams));
+			}
 		}
 		items.add(new DropDownMenuItem());
 		return items;

--
Gitblit v1.9.1