Skip to content

Commit

Permalink
fix mail notification when close/reopen issue (#6581) (#6588)
Browse files Browse the repository at this point in the history
  • Loading branch information
lunny authored and zeripath committed Apr 12, 2019
1 parent 72f4cdf commit 4b87aa3
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 7 deletions.
16 changes: 12 additions & 4 deletions models/issue_mail.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

Expand Down
21 changes: 18 additions & 3 deletions modules/notification/mail/mail.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
Expand Down

0 comments on commit 4b87aa3

Please sign in to comment.