From 5e3521f8496511db4df45f011ea72f25623ad90f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 03 Mar 2014 21:34:32 -0500
Subject: [PATCH] Ticket tracker with patchset contributions

---
 src/main/java/com/gitblit/wicket/panels/RefsPanel.java |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/panels/RefsPanel.java b/src/main/java/com/gitblit/wicket/panels/RefsPanel.java
index 7a16f4a..6e9e866 100644
--- a/src/main/java/com/gitblit/wicket/panels/RefsPanel.java
+++ b/src/main/java/com/gitblit/wicket/panels/RefsPanel.java
@@ -25,7 +25,6 @@
 import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;
@@ -34,13 +33,15 @@
 
 import com.gitblit.Constants;
 import com.gitblit.models.RefModel;
+import com.gitblit.models.RepositoryModel;
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.pages.CommitPage;
 import com.gitblit.wicket.pages.LogPage;
 import com.gitblit.wicket.pages.TagPage;
+import com.gitblit.wicket.pages.TicketsPage;
 
-public class RefsPanel extends Panel {
+public class RefsPanel extends BasePanel {
 
 	private static final long serialVersionUID = 1L;
 
@@ -88,6 +89,8 @@
 			}
 		}
 		final boolean shouldBreak = remoteCount < refs.size();
+		RepositoryModel repository = app().repositories().getRepositoryModel(repositoryName);
+		final boolean hasTickets = app().tickets().hasTickets(repository);
 
 		ListDataProvider<RefModel> refsDp = new ListDataProvider<RefModel>(refs);
 		DataView<RefModel> refsView = new DataView<RefModel>("ref", refsDp) {
@@ -103,7 +106,13 @@
 				Class<? extends WebPage> linkClass = CommitPage.class;
 				String cssClass = "";
 				String tooltip = "";
-				if (name.startsWith(Constants.R_HEADS)) {
+				if (name.startsWith(Constants.R_TICKET)) {
+					// Gitblit ticket ref
+					objectid = name.substring(Constants.R_TICKET.length());
+					name = name.substring(Constants.R_HEADS.length());
+					linkClass = TicketsPage.class;
+					cssClass = "localBranch";
+				} else if (name.startsWith(Constants.R_HEADS)) {
 					// local branch
 					linkClass = LogPage.class;
 					name = name.substring(Constants.R_HEADS.length());
@@ -113,13 +122,23 @@
 					linkClass = LogPage.class;
 					cssClass = "headRef";
 				} else if (name.startsWith(Constants.R_CHANGES)) {
-					// Gerrit change ref
+					// Gitblit change ref
 					name = name.substring(Constants.R_CHANGES.length());
 					// strip leading nn/ from nn/#####nn/ps = #####nn-ps
 					name = name.substring(name.indexOf('/') + 1).replace('/', '-');
 					String [] values = name.split("-");
+					// Gerrit change
 					tooltip = MessageFormat.format(getString("gb.reviewPatchset"), values[0], values[1]);
 					cssClass = "otherRef";
+				} else if (name.startsWith(Constants.R_TICKETS_PATCHSETS)) {
+					// Gitblit patchset ref
+					name = name.substring(Constants.R_TICKETS_PATCHSETS.length());
+					// strip leading nn/ from nn/#####nn/ps = #####nn-ps
+					name = name.substring(name.indexOf('/') + 1).replace('/', '-');
+					String [] values = name.split("-");
+					tooltip = MessageFormat.format(getString("gb.ticketPatchset"), values[0], values[1]);
+					linkClass = LogPage.class;
+					cssClass = "otherRef";
 				} else if (name.startsWith(Constants.R_PULL)) {
 					// Pull Request ref
 					String num = name.substring(Constants.R_PULL.length());

--
Gitblit v1.9.1