From 3b23dcdde4ef55927e45e56596e7023ce2cf9424 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 07 May 2014 14:32:09 -0400
Subject: [PATCH] Consolidate open tickets page parameters

---
 src/main/java/com/gitblit/wicket/pages/RepositoryPage.java    |    9 ++-------
 src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java |   14 +++++++-------
 src/main/java/com/gitblit/wicket/WicketUtils.java             |   14 ++++++++++++++
 src/main/java/com/gitblit/wicket/pages/NewMilestonePage.java  |    8 ++++----
 src/main/java/com/gitblit/wicket/panels/TicketListPanel.java  |    6 +-----
 5 files changed, 28 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/WicketUtils.java b/src/main/java/com/gitblit/wicket/WicketUtils.java
index 10b2146..687f010 100644
--- a/src/main/java/com/gitblit/wicket/WicketUtils.java
+++ b/src/main/java/com/gitblit/wicket/WicketUtils.java
@@ -445,6 +445,20 @@
 		return new PageParameters(parameterMap);
 	}
 
+	public static PageParameters newTicketsParameters(String repositoryName, String... states) {
+		PageParameters tParams = newRepositoryParameter(repositoryName);
+		if (states != null) {
+			for (String state : states) {
+				tParams.add("status", state);
+			}
+		}
+		return tParams;
+	}
+
+	public static PageParameters newOpenTicketsParameter(String repositoryName) {
+		return newTicketsParameters(repositoryName, TicketsUI.openStatii);
+	}
+
 	public static String getProjectName(PageParameters params) {
 		return params.getString("p", "");
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java b/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java
index b844442..d6f58e7 100644
--- a/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/EditMilestonePage.java
@@ -66,7 +66,7 @@
 		RepositoryModel model = getRepositoryModel();
 		if (!app().tickets().isAcceptingTicketUpdates(model)) {
 			// ticket service is read-only
-			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+			throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 		}
 
 		UserModel currentUser = GitBlitWebSession.get().getUser();
@@ -76,19 +76,19 @@
 
 		if (!currentUser.isAuthenticated || !currentUser.canAdmin(model)) {
 			// administration prohibited
-			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+			throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 		}
 
 		oldName = WicketUtils.getObject(params);
 		if (StringUtils.isEmpty(oldName)) {
 			// milestone not specified
-			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+			throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 		}
 
 		TicketMilestone tm = app().tickets().getMilestone(getRepositoryModel(), oldName);
 		if (tm == null) {
 			// milestone does not exist
-			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+			throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 		}
 
 		setStatelessHint(false);
@@ -140,7 +140,7 @@
 				}
 
 				if (success && app().tickets().updateMilestone(getRepositoryModel(), tm, createdBy)) {
-					setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(getRepositoryModel().name));
+					setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 				} else {
 					// TODO error
 				}
@@ -151,7 +151,7 @@
 
 			@Override
 			public void onSubmit() {
-				setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+				setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 			}
 		};
 		cancel.setDefaultFormProcessing(false);
@@ -167,7 +167,7 @@
 				boolean notify = notificationModel.getObject();
 
 				if (app().tickets().deleteMilestone(getRepositoryModel(), oldName, createdBy, notify)) {
-					setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+					setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 				} else {
 					// TODO error processing
 				}
diff --git a/src/main/java/com/gitblit/wicket/pages/NewMilestonePage.java b/src/main/java/com/gitblit/wicket/pages/NewMilestonePage.java
index a9f76d3..cc33190 100644
--- a/src/main/java/com/gitblit/wicket/pages/NewMilestonePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/NewMilestonePage.java
@@ -55,7 +55,7 @@
 		RepositoryModel model = getRepositoryModel();
 		if (!app().tickets().isAcceptingTicketUpdates(model)) {
 			// ticket service is read-only
-			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+			throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 		}
 
 		UserModel currentUser = GitBlitWebSession.get().getUser();
@@ -65,7 +65,7 @@
 
 		if (!currentUser.isAuthenticated || !currentUser.canAdmin(model)) {
 			// administration prohibited
-			throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+			throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 		}
 
 		setStatelessHint(false);
@@ -108,7 +108,7 @@
 				if (milestone != null) {
 					milestone.due = due;
 					app().tickets().updateMilestone(getRepositoryModel(), milestone, createdBy);
-					throw new RestartResponseException(TicketsPage.class, WicketUtils.newRepositoryParameter(getRepositoryModel().name));
+					throw new RestartResponseException(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 				} else {
 					// TODO error
 				}
@@ -120,7 +120,7 @@
 
 			@Override
 			public void onSubmit() {
-				setResponsePage(TicketsPage.class, WicketUtils.newRepositoryParameter(repositoryName));
+				setResponsePage(TicketsPage.class, WicketUtils.newOpenTicketsParameter(repositoryName));
 			}
 		};
 		cancel.setDefaultFormProcessing(false);
diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
index 165feed..a0c9ce0 100644
--- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -60,7 +60,6 @@
 import com.gitblit.models.UserRepositoryPreferences;
 import com.gitblit.servlet.PagesServlet;
 import com.gitblit.servlet.SyndicationServlet;
-import com.gitblit.tickets.TicketIndexer.Lucene;
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.BugtraqProcessor;
 import com.gitblit.utils.DeepCopier;
@@ -70,7 +69,6 @@
 import com.gitblit.wicket.CacheControl;
 import com.gitblit.wicket.GitBlitWebSession;
 import com.gitblit.wicket.SessionlessForm;
-import com.gitblit.wicket.TicketsUI;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.panels.LinkPanel;
 import com.gitblit.wicket.panels.NavigationPanel;
@@ -202,11 +200,8 @@
 		}
 		navLinks.add(new PageNavLink("gb.commits", LogPage.class, params));
 		navLinks.add(new PageNavLink("gb.tree", TreePage.class, params));
-		if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(getRepositoryModel()) || app().tickets().hasTickets(getRepositoryModel()))) {
-			PageParameters tParams = new PageParameters(params);
-			for (String state : TicketsUI.openStatii) {
-				tParams.add(Lucene.status.name(), state);
-			}
+		if (app().tickets().isReady() && (app().tickets().isAcceptingNewTickets(model) || app().tickets().hasTickets(model))) {
+			PageParameters tParams = WicketUtils.newOpenTicketsParameter(repositoryName);
 			navLinks.add(new PageNavLink("gb.tickets", TicketsPage.class, tParams));
 		}
 		navLinks.add(new PageNavLink("gb.docs", DocsPage.class, params, true));
diff --git a/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java b/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java
index 395200c..ab763b8 100644
--- a/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/TicketListPanel.java
@@ -32,7 +32,6 @@
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.UserModel;
 import com.gitblit.tickets.QueryResult;
-import com.gitblit.tickets.TicketIndexer.Lucene;
 import com.gitblit.tickets.TicketLabel;
 import com.gitblit.utils.ArrayUtils;
 import com.gitblit.utils.BugtraqProcessor;
@@ -77,10 +76,7 @@
 
 				if (showRepository) {
 					String name = StringUtils.stripDotGit(ticket.repository);
-					PageParameters rp = new PageParameters(WicketUtils.newRepositoryParameter(ticket.repository));
-					for (String state : TicketsUI.openStatii) {
-						rp.add(Lucene.status.name(), state);
-					}
+					PageParameters rp =  WicketUtils.newOpenTicketsParameter(ticket.repository);
 					LinkPanel link = new LinkPanel("ticketsLink", null, name, TicketsPage.class, rp);
 					WicketUtils.setCssBackground(link, name);
 					item.add(link);

--
Gitblit v1.9.1