From bc57cd86db78fccf6b981375425d74bab540ad7b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 29 Dec 2011 19:35:40 -0500
Subject: [PATCH] Integrated selectable days back filtering in filters menu

---
 src/com/gitblit/wicket/pages/RepositoriesPage.java |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/RepositoriesPage.java b/src/com/gitblit/wicket/pages/RepositoriesPage.java
index 4c50b44..21efdda 100644
--- a/src/com/gitblit/wicket/pages/RepositoriesPage.java
+++ b/src/com/gitblit/wicket/pages/RepositoriesPage.java
@@ -35,6 +35,7 @@
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.PageRegistration;
+import com.gitblit.wicket.PageRegistration.DropDownMenuItem;
 import com.gitblit.wicket.PageRegistration.DropDownMenuRegistration;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.RepositoriesPanel;
@@ -49,6 +50,11 @@
 	public RepositoriesPage(PageParameters params) {
 		super(params);
 		setup(params);
+	}
+
+	@Override
+	protected boolean reusePageParameters() {
+		return true;
 	}
 
 	private void setup(PageParameters params) {
@@ -85,8 +91,29 @@
 
 	@Override
 	protected void addDropDownMenus(List<PageRegistration> pages) {
-		DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters", RepositoriesPage.class);
-		menu.menuItems.addAll(getFilterMenuItems());
+		int daysBack = 0;
+		PageParameters currentParameters = getPageParameters();
+		if (currentParameters != null && currentParameters.containsKey("db")) {
+			daysBack = currentParameters.getInt("db");
+		}
+		PageParameters params = null;
+		if (daysBack > 0) {
+			params = new PageParameters("db=" + daysBack);
+		}
+
+		DropDownMenuRegistration menu = new DropDownMenuRegistration("gb.filters",
+				RepositoriesPage.class);
+		// preserve time filter option on repository choices
+		menu.menuItems.addAll(getRepositoryFilterItems(params));
+		
+		// preserve repository filter option on time choices
+		menu.menuItems.addAll(getTimeFilterItems(currentParameters));
+		
+		if (menu.menuItems.size() > 0) {
+			// Reset Filter			
+			menu.menuItems.add(new DropDownMenuItem(getString("gb.reset"), null, null));
+		}
+
 		pages.add(menu);
 	}
 
@@ -129,7 +156,7 @@
 		}
 		return message;
 	}
-	
+
 	@Override
 	protected void onBeforeRender() {
 		if (GitBlit.isDebugMode()) {
@@ -138,6 +165,7 @@
 		}
 		super.onBeforeRender();
 	}
+
 	@Override
 	protected void onAfterRender() {
 		if (GitBlit.isDebugMode()) {

--
Gitblit v1.9.1