diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-04-12 20:01:34 +0800 |
---|---|---|
committer | zeripath <art27@cantab.net> | 2019-04-12 13:01:34 +0100 |
commit | 4b87aa367c87e56de36ab12b3340b450c55cb9f6 (patch) | |
tree | 4b26dcb6b9ca944455316b922099d8095acb0ba6 | |
parent | 72f4cdf868625929fc932d92283b3067a8a55957 (diff) | |
download | gitea-4b87aa367c87e56de36ab12b3340b450c55cb9f6.tar.gz gitea-4b87aa367c87e56de36ab12b3340b450c55cb9f6.zip |
fix mail notification when close/reopen issue (#6581) (#6588)
-rw-r--r-- | models/issue_mail.go | 16 | ||||
-rw-r--r-- | modules/notification/mail/mail.go | 21 |
2 files changed, 30 insertions, 7 deletions
diff --git a/models/issue_mail.go b/models/issue_mail.go index 66ad46e39d..18d0115833 100644 --- a/models/issue_mail.go +++ b/models/issue_mail.go @@ -118,17 +118,25 @@ func mailIssueCommentToParticipants(e Engine, issue *Issue, doer *User, content // MailParticipants sends new issue thread created emails to repository watchers // and mentioned people. -func (issue *Issue) MailParticipants() (err error) { - return issue.mailParticipants(x) +func (issue *Issue) MailParticipants(opType ActionType) (err error) { + return issue.mailParticipants(x, opType) } -func (issue *Issue) mailParticipants(e Engine) (err error) { +func (issue *Issue) mailParticipants(e Engine, opType ActionType) (err error) { mentions := markup.FindAllMentions(issue.Content) if err = UpdateIssueMentions(e, issue.ID, mentions); err != nil { return fmt.Errorf("UpdateIssueMentions [%d]: %v", issue.ID, err) } - if err = mailIssueCommentToParticipants(e, issue, issue.Poster, issue.Content, nil, mentions); err != nil { + var content = issue.Content + switch opType { + case ActionCloseIssue, ActionClosePullRequest: + content = fmt.Sprintf("Closed #%d", issue.Index) + case ActionReopenIssue, ActionReopenPullRequest: + content = fmt.Sprintf("Reopened #%d", issue.Index) + } + + if err = mailIssueCommentToParticipants(e, issue, issue.Poster, content, nil, mentions); err != nil { log.Error(4, "mailIssueCommentToParticipants: %v", err) } diff --git a/modules/notification/mail/mail.go b/modules/notification/mail/mail.go index 8bb4173449..11371a6d78 100644 --- a/modules/notification/mail/mail.go +++ b/modules/notification/mail/mail.go @@ -42,19 +42,34 @@ func (m *mailNotifier) NotifyCreateIssueComment(doer *models.User, repo *models. } func (m *mailNotifier) NotifyNewIssue(issue *models.Issue) { - if err := issue.MailParticipants(); err != nil { + if err := issue.MailParticipants(models.ActionCreateIssue); err != nil { log.Error(4, "MailParticipants: %v", err) } } func (m *mailNotifier) NotifyIssueChangeStatus(doer *models.User, issue *models.Issue, isClosed bool) { - if err := issue.MailParticipants(); err != nil { + var actionType models.ActionType + if issue.IsPull { + if isClosed { + actionType = models.ActionClosePullRequest + } else { + actionType = models.ActionReopenPullRequest + } + } else { + if isClosed { + actionType = models.ActionCloseIssue + } else { + actionType = models.ActionReopenIssue + } + } + + if err := issue.MailParticipants(actionType); err != nil { log.Error(4, "MailParticipants: %v", err) } } func (m *mailNotifier) NotifyNewPullRequest(pr *models.PullRequest) { - if err := pr.Issue.MailParticipants(); err != nil { + if err := pr.Issue.MailParticipants(models.ActionCreatePullRequest); err != nil { log.Error(4, "MailParticipants: %v", err) } } |