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/tickets/TicketNotifier.java | 31 +++++++++++++++++++++++++++++-- 1 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gitblit/tickets/TicketNotifier.java b/src/main/java/com/gitblit/tickets/TicketNotifier.java index 9a5e4e1..8c7fe6d 100644 --- a/src/main/java/com/gitblit/tickets/TicketNotifier.java +++ b/src/main/java/com/gitblit/tickets/TicketNotifier.java @@ -135,6 +135,7 @@ StringBuilder html = new StringBuilder(); html.append("<head>"); html.append(readStyle()); + html.append(readViewTicketAction(ticket)); html.append("</head>"); html.append("<body>"); html.append(MarkdownUtils.transformGFM(settings, markdown, ticket.repository)); @@ -316,6 +317,19 @@ // comment update sb.append(MessageFormat.format("**{0}** commented on this ticket.", user.getDisplayName())); sb.append(HARD_BRK); + } else if (lastChange.hasReference()) { + // reference update + String type = "?"; + + switch (lastChange.reference.getSourceType()) { + case Commit: { type = "commit"; } break; + case Ticket: { type = "ticket"; } break; + default: { } break; + } + + sb.append(MessageFormat.format("**{0}** referenced this ticket in {1} {2}", type, lastChange.toString())); + sb.append(HARD_BRK); + } else { // general update pattern = "**{0}** has updated this ticket."; @@ -545,7 +559,6 @@ } } } - mailing.setRecipients(toAddresses); // // CC recipients @@ -554,7 +567,7 @@ // repository owners if (!ArrayUtils.isEmpty(repository.owners)) { - tos.addAll(repository.owners); + ccs.addAll(repository.owners); } // cc users mentioned in last comment @@ -595,6 +608,14 @@ } ccAddresses.addAll(settings.getStrings(Keys.mail.mailingLists)); + // respect the author's email preference + UserModel lastAuthor = userManager.getUserModel(lastChange.author); + if (lastAuthor != null && !lastAuthor.getPreferences().isEmailMeOnMyTicketChanges()) { + toAddresses.remove(lastAuthor.emailAddress); + ccAddresses.remove(lastAuthor.emailAddress); + } + + mailing.setRecipients(toAddresses); mailing.setCCs(ccAddresses); } @@ -606,6 +627,12 @@ return sb.toString(); } + protected String readViewTicketAction(TicketModel ticket) { + String action = readResource("viewTicket.html"); + action = action.replace("${url}", ticketService.getTicketUrl(ticket)); + return action; + } + protected String readResource(String resource) { StringBuilder sb = new StringBuilder(); InputStream is = null; -- Gitblit v1.9.1