From c2188a840bc4153ae92112b04b2e06a90d3944aa Mon Sep 17 00:00:00 2001 From: Paul Martin <paul@paulsputer.com> Date: Wed, 27 Apr 2016 18:58:06 -0400 Subject: [PATCH] Ticket Reference handling #1048 --- src/main/java/com/gitblit/wicket/pages/TicketPage.java | 43 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/TicketPage.java b/src/main/java/com/gitblit/wicket/pages/TicketPage.java index b2e63a6..cd049f4 100644 --- a/src/main/java/com/gitblit/wicket/pages/TicketPage.java +++ b/src/main/java/com/gitblit/wicket/pages/TicketPage.java @@ -36,7 +36,6 @@ import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.PageParameters; -import org.apache.wicket.RequestCycle; import org.apache.wicket.RestartResponseException; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.behavior.SimpleAttributeModifier; @@ -45,7 +44,6 @@ import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.html.link.ExternalLink; import org.apache.wicket.markup.html.link.Link; -import org.apache.wicket.markup.html.link.StatelessLink; import org.apache.wicket.markup.html.pages.RedirectPage; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.repeater.Item; @@ -54,7 +52,6 @@ import org.apache.wicket.model.Model; import org.apache.wicket.protocol.http.RequestUtils; import org.apache.wicket.protocol.http.WebRequest; -import org.apache.wicket.request.target.basic.RedirectRequestTarget; import org.eclipse.jgit.diff.DiffEntry.ChangeType; import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.Ref; @@ -863,9 +860,6 @@ if (event.hasPatchset()) { // patchset Patchset patchset = event.patchset; - //In the case of using a cached change list - item.setVisible(!patchset.isDeleted()); - String what; if (event.isStatusChange() && (Status.New == event.getStatus())) { what = getString("gb.proposedThisChange"); @@ -883,6 +877,7 @@ LinkPanel psr = new LinkPanel("patchsetRevision", null, patchset.number + "-" + patchset.rev, ComparePage.class, WicketUtils.newRangeParameter(repositoryName, patchset.parent == null ? patchset.base : patchset.parent, patchset.tip), true); WicketUtils.setHtmlTooltip(psr, patchset.toString()); + WicketUtils.setCssClass(psr, "aui-lozenge aui-lozenge-subtle"); item.add(psr); String typeCss = getPatchsetTypeCss(patchset.type); Label typeLabel = new Label("patchsetType", patchset.type.toString()); @@ -910,6 +905,42 @@ item.add(new Label("patchsetType").setVisible(false)); item.add(new Label("deleteRevision").setVisible(false)); item.add(new Label("patchsetDiffStat").setVisible(false)); + } else if (event.hasReference()) { + // reference + switch (event.reference.getSourceType()) { + case Commit: { + final int shaLen = app().settings().getInteger(Keys.web.shortCommitIdLength, 6); + + item.add(new Label("what", getString("gb.referencedByCommit"))); + LinkPanel psr = new LinkPanel("patchsetRevision", null, event.reference.toString().substring(0, shaLen), + CommitPage.class, WicketUtils.newObjectParameter(repositoryName, event.reference.toString()), true); + WicketUtils.setHtmlTooltip(psr, event.reference.toString()); + WicketUtils.setCssClass(psr, "ticketReference-commit shortsha1"); + item.add(psr); + + } break; + + case Ticket: { + final String text = MessageFormat.format("ticket/{0}", event.reference.ticketId); + + item.add(new Label("what", getString("gb.referencedByTicket"))); + //NOTE: Ideally reference the exact comment using reference.toString, + // however anchor hash is used and is escaped resulting in broken link + LinkPanel psr = new LinkPanel("patchsetRevision", null, text, + TicketsPage.class, WicketUtils.newObjectParameter(repositoryName, event.reference.ticketId.toString()), true); + WicketUtils.setCssClass(psr, "ticketReference-comment"); + item.add(psr); + } break; + + default: { + item.add(new Label("what").setVisible(false)); + item.add(new Label("patchsetRevision").setVisible(false)); + } + } + + item.add(new Label("patchsetType").setVisible(false)); + item.add(new Label("deleteRevision").setVisible(false)); + item.add(new Label("patchsetDiffStat").setVisible(false)); } else if (event.hasReview()) { // review String score; -- Gitblit v1.9.1