Commit 57cb1ca7917f27f2c7500858fb66d53b3ea49783

Authored by Pierre de La Morinerie
1 parent d8a24003

Write the issue/merge request title in the notification email subject

This changes the email subjects for issues and merge request
notifications from:

    Team / Project | Note for issue #1234

to:

    Team / Project | Saving issue doesn't work sometimes (#1234)

Rationale:

* Scan the subject of the email notification more easily when catching
up with a lot of notifications. Instead of having to open the email to
get the title of the issue or merge request, one can simply read the
subject of the email.

* Group messages by subject: email clients will group emails in threads
if they have the same subject.
app/mailers/emails/issues.rb
... ... @@ -3,14 +3,16 @@ module Emails
3 3 def new_issue_email(recipient_id, issue_id)
4 4 @issue = Issue.find(issue_id)
5 5 @project = @issue.project
6   - mail(to: recipient(recipient_id), subject: subject("New issue ##{@issue.iid}", @issue.title))
  6 + mail(to: recipient(recipient_id),
  7 + subject: subject("#{@issue.title} (##{@issue.iid})"))
7 8 end
8 9  
9 10 def reassigned_issue_email(recipient_id, issue_id, previous_assignee_id)
10 11 @issue = Issue.find(issue_id)
11 12 @previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id
12 13 @project = @issue.project
13   - mail(to: recipient(recipient_id), subject: subject("Changed issue ##{@issue.iid}", @issue.title))
  14 + mail(to: recipient(recipient_id),
  15 + subject: subject("#{@issue.title} (##{@issue.iid})"))
14 16 end
15 17  
16 18 def closed_issue_email(recipient_id, issue_id, updated_by_user_id)
... ... @@ -18,7 +20,7 @@ module Emails
18 20 @project = @issue.project
19 21 @updated_by = User.find updated_by_user_id
20 22 mail(to: recipient(recipient_id),
21   - subject: subject("Closed issue ##{@issue.iid}", @issue.title))
  23 + subject: subject("#{@issue.title} (##{@issue.iid})"))
22 24 end
23 25  
24 26 def issue_status_changed_email(recipient_id, issue_id, status, updated_by_user_id)
... ... @@ -27,7 +29,7 @@ module Emails
27 29 @project = @issue.project
28 30 @updated_by = User.find updated_by_user_id
29 31 mail(to: recipient(recipient_id),
30   - subject: subject("Changed issue ##{@issue.iid}", @issue.title))
  32 + subject: subject("#{@issue.title} (##{@issue.iid})"))
31 33 end
32 34 end
33 35 end
... ...
app/mailers/emails/merge_requests.rb
... ... @@ -3,27 +3,31 @@ module Emails
3 3 def new_merge_request_email(recipient_id, merge_request_id)
4 4 @merge_request = MergeRequest.find(merge_request_id)
5 5 @project = @merge_request.project
6   - mail(to: recipient(recipient_id), subject: subject("New merge request ##{@merge_request.iid}", @merge_request.title))
  6 + mail(to: recipient(recipient_id),
  7 + subject: subject("#{@merge_request.title} (!#{@merge_request.iid})"))
7 8 end
8 9  
9 10 def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id)
10 11 @merge_request = MergeRequest.find(merge_request_id)
11 12 @previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id
12 13 @project = @merge_request.project
13   - mail(to: recipient(recipient_id), subject: subject("Changed merge request ##{@merge_request.iid}", @merge_request.title))
  14 + mail(to: recipient(recipient_id),
  15 + subject: subject("#{@merge_request.title} (!#{@merge_request.iid})"))
14 16 end
15 17  
16 18 def closed_merge_request_email(recipient_id, merge_request_id, updated_by_user_id)
17 19 @merge_request = MergeRequest.find(merge_request_id)
18 20 @updated_by = User.find updated_by_user_id
19 21 @project = @merge_request.project
20   - mail(to: recipient(recipient_id), subject: subject("Closed merge request ##{@merge_request.iid}", @merge_request.title))
  22 + mail(to: recipient(recipient_id),
  23 + subject: subject("#{@merge_request.title} (!#{@merge_request.iid})"))
21 24 end
22 25  
23 26 def merged_merge_request_email(recipient_id, merge_request_id)
24 27 @merge_request = MergeRequest.find(merge_request_id)
25 28 @project = @merge_request.project
26   - mail(to: recipient(recipient_id), subject: subject("Accepted merge request ##{@merge_request.iid}", @merge_request.title))
  29 + mail(to: recipient(recipient_id),
  30 + subject: subject("#{@merge_request.title} (!#{@merge_request.iid})"))
27 31 end
28 32 end
29 33  
... ...
app/mailers/emails/notes.rb
... ... @@ -4,27 +4,31 @@ module Emails
4 4 @note = Note.find(note_id)
5 5 @commit = @note.noteable
6 6 @project = @note.project
7   - mail(to: recipient(recipient_id), subject: subject("Note for commit #{@commit.short_id}", @commit.title))
  7 + mail(to: recipient(recipient_id),
  8 + subject: subject("#{@commit.title} (#{@commit.short_id})"))
8 9 end
9 10  
10 11 def note_issue_email(recipient_id, note_id)
11 12 @note = Note.find(note_id)
12 13 @issue = @note.noteable
13 14 @project = @note.project
14   - mail(to: recipient(recipient_id), subject: subject("Note for issue ##{@issue.iid}"))
  15 + mail(to: recipient(recipient_id),
  16 + subject: subject("#{@issue.title} (##{@issue.iid})"))
15 17 end
16 18  
17 19 def note_merge_request_email(recipient_id, note_id)
18 20 @note = Note.find(note_id)
19 21 @merge_request = @note.noteable
20 22 @project = @note.project
21   - mail(to: recipient(recipient_id), subject: subject("Note for merge request ##{@merge_request.iid}"))
  23 + mail(to: recipient(recipient_id),
  24 + subject: subject("#{@merge_request.title} (!#{@merge_request.iid})"))
22 25 end
23 26  
24 27 def note_wall_email(recipient_id, note_id)
25 28 @note = Note.find(note_id)
26 29 @project = @note.project
27   - mail(to: recipient(recipient_id), subject: subject("Note on wall"))
  30 + mail(to: recipient(recipient_id),
  31 + subject: subject("Note on wall"))
28 32 end
29 33 end
30 34 end
... ...