From b39fab41c8b315ba7ddf9f9a4cc522385cf9f720 Mon Sep 17 00:00:00 2001 From: mrsdizzie Date: Fri, 3 Jan 2020 12:13:22 -0500 Subject: [PATCH] Some more e-mail notification fixes (#9596) * Some more e-mail notification fixes A few more small e-mail notification fixes/changes * Style footer of notification email to be smaller * Include text for when pull request is merged * Don't include original body of issue or PR when merging/closing by setting issue.Content to "" in these cases * Set Re: prefix and meessage-ID headers based on actName instead of checking for a comment. This fixes a bug where certain actions that didn't have a comment were setting Message-ID instead of In-Reply-To which caused some mail programs not to show those messages as they would have had the same Message-ID as a previous message. Also fixes the case where a final comment and closing message would have been displayed out of order if you didn't have a copy of the original issue/pr cretion message. * Update other template footers for consistency --- modules/notification/mail/mail.go | 3 ++- services/mailer/mail.go | 10 ++++++---- templates/mail/issue/assigned.tmpl | 16 ++++++++++------ templates/mail/issue/default.tmpl | 15 +++++++++++---- templates/mail/notify/collaborator.tmpl | 15 ++++++++++----- 5 files changed, 39 insertions(+), 20 deletions(-) diff --git a/modules/notification/mail/mail.go b/modules/notification/mail/mail.go index 5148434dc..6cc6fda14 100644 --- a/modules/notification/mail/mail.go +++ b/modules/notification/mail/mail.go @@ -53,6 +53,7 @@ func (m *mailNotifier) NotifyNewIssue(issue *models.Issue) { func (m *mailNotifier) NotifyIssueChangeStatus(doer *models.User, issue *models.Issue, actionComment *models.Comment, isClosed bool) { var actionType models.ActionType + issue.Content = "" if issue.IsPull { if isClosed { actionType = models.ActionClosePullRequest @@ -105,7 +106,7 @@ func (m *mailNotifier) NotifyMergePullRequest(pr *models.PullRequest, doer *mode log.Error("pr.LoadIssue: %v", err) return } - + pr.Issue.Content = "" if err := mailer.MailParticipants(pr.Issue, doer, models.ActionMergePullRequest); err != nil { log.Error("MailParticipants: %v", err) } diff --git a/services/mailer/mail.go b/services/mailer/mail.go index a8768de6c..fa40170d4 100644 --- a/services/mailer/mail.go +++ b/services/mailer/mail.go @@ -177,7 +177,6 @@ func composeIssueCommentMessages(ctx *mailCommentContext, tos []string, fromMent commentType := models.CommentTypeComment if ctx.Comment != nil { - prefix = "Re: " commentType = ctx.Comment.Type link = ctx.Issue.HTMLURL() + "#" + ctx.Comment.HashTag() } else { @@ -189,13 +188,16 @@ func composeIssueCommentMessages(ctx *mailCommentContext, tos []string, fromMent reviewType = ctx.Comment.Review.Type } - fallback = prefix + fallbackMailSubject(ctx.Issue) - // This is the body of the new issue or comment, not the mail body body := string(markup.RenderByType(markdown.MarkupName, []byte(ctx.Content), ctx.Issue.Repo.HTMLURL(), ctx.Issue.Repo.ComposeMetas())) actType, actName, tplName := actionToTemplate(ctx.Issue, ctx.ActionType, commentType, reviewType) + if actName != "new" { + prefix = "Re: " + } + fallback = prefix + fallbackMailSubject(ctx.Issue) + if ctx.Comment != nil && ctx.Comment.Review != nil { reviewComments = make([]*models.Comment, 0, 10) for _, lines := range ctx.Comment.Review.CodeComments { @@ -247,7 +249,7 @@ func composeIssueCommentMessages(ctx *mailCommentContext, tos []string, fromMent msg.Info = fmt.Sprintf("Subject: %s, %s", subject, info) // Set Message-ID on first message so replies know what to reference - if ctx.Comment == nil { + if actName == "new" { msg.SetHeader("Message-ID", "<"+ctx.Issue.ReplyReference()+">") } else { msg.SetHeader("In-Reply-To", "<"+ctx.Issue.ReplyReference()+">") diff --git a/templates/mail/issue/assigned.tmpl b/templates/mail/issue/assigned.tmpl index 997e2447f..d302a16f2 100644 --- a/templates/mail/issue/assigned.tmpl +++ b/templates/mail/issue/assigned.tmpl @@ -1,17 +1,21 @@ + {{.Subject}}

@{{.Doer.Name}} assigned you to the {{if .IsPull}}pull request{{else}}issue{{end}} #{{.Issue.Index}} in repository {{.Repo}}.

-

- --- -
- View it on {{AppName}}. -

- + diff --git a/templates/mail/issue/default.tmpl b/templates/mail/issue/default.tmpl index 71291c61b..aebad09cd 100644 --- a/templates/mail/issue/default.tmpl +++ b/templates/mail/issue/default.tmpl @@ -3,12 +3,15 @@ {{.Subject}} - {{if .ReviewComments}} + - {{end}} + @@ -18,6 +21,8 @@ Closed #{{.Issue.Index}}. {{else if eq .ActionName "reopen"}} Reopened #{{.Issue.Index}}. + {{else if eq .ActionName "merge"}} + Merged #{{.Issue.Index}} into {{.Issue.PullRequest.BaseBranch}}. {{else if eq .ActionName "approve"}} @{{.Doer.Name}} approved this pull request. {{else if eq .ActionName "reject"}} @@ -42,10 +47,12 @@ {{end -}}

+ diff --git a/templates/mail/notify/collaborator.tmpl b/templates/mail/notify/collaborator.tmpl index 4bbf40bbc..947b40439 100644 --- a/templates/mail/notify/collaborator.tmpl +++ b/templates/mail/notify/collaborator.tmpl @@ -1,16 +1,21 @@ + {{.Subject}}

You have been added as a collaborator of repository: {{.RepoName}}

-

- --- -
- View it on Gitea. -

+