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,14 +3,16 @@ module Emails
3 def new_issue_email(recipient_id, issue_id) 3 def new_issue_email(recipient_id, issue_id)
4 @issue = Issue.find(issue_id) 4 @issue = Issue.find(issue_id)
5 @project = @issue.project 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 end 8 end
8 9
9 def reassigned_issue_email(recipient_id, issue_id, previous_assignee_id) 10 def reassigned_issue_email(recipient_id, issue_id, previous_assignee_id)
10 @issue = Issue.find(issue_id) 11 @issue = Issue.find(issue_id)
11 @previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id 12 @previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id
12 @project = @issue.project 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 end 16 end
15 17
16 def closed_issue_email(recipient_id, issue_id, updated_by_user_id) 18 def closed_issue_email(recipient_id, issue_id, updated_by_user_id)
@@ -18,7 +20,7 @@ module Emails @@ -18,7 +20,7 @@ module Emails
18 @project = @issue.project 20 @project = @issue.project
19 @updated_by = User.find updated_by_user_id 21 @updated_by = User.find updated_by_user_id
20 mail(to: recipient(recipient_id), 22 mail(to: recipient(recipient_id),
21 - subject: subject("Closed issue ##{@issue.iid}", @issue.title)) 23 + subject: subject("#{@issue.title} (##{@issue.iid})"))
22 end 24 end
23 25
24 def issue_status_changed_email(recipient_id, issue_id, status, updated_by_user_id) 26 def issue_status_changed_email(recipient_id, issue_id, status, updated_by_user_id)
@@ -27,7 +29,7 @@ module Emails @@ -27,7 +29,7 @@ module Emails
27 @project = @issue.project 29 @project = @issue.project
28 @updated_by = User.find updated_by_user_id 30 @updated_by = User.find updated_by_user_id
29 mail(to: recipient(recipient_id), 31 mail(to: recipient(recipient_id),
30 - subject: subject("Changed issue ##{@issue.iid}", @issue.title)) 32 + subject: subject("#{@issue.title} (##{@issue.iid})"))
31 end 33 end
32 end 34 end
33 end 35 end
app/mailers/emails/merge_requests.rb
@@ -3,27 +3,31 @@ module Emails @@ -3,27 +3,31 @@ module Emails
3 def new_merge_request_email(recipient_id, merge_request_id) 3 def new_merge_request_email(recipient_id, merge_request_id)
4 @merge_request = MergeRequest.find(merge_request_id) 4 @merge_request = MergeRequest.find(merge_request_id)
5 @project = @merge_request.project 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 end 8 end
8 9
9 def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id) 10 def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id)
10 @merge_request = MergeRequest.find(merge_request_id) 11 @merge_request = MergeRequest.find(merge_request_id)
11 @previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id 12 @previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id
12 @project = @merge_request.project 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 end 16 end
15 17
16 def closed_merge_request_email(recipient_id, merge_request_id, updated_by_user_id) 18 def closed_merge_request_email(recipient_id, merge_request_id, updated_by_user_id)
17 @merge_request = MergeRequest.find(merge_request_id) 19 @merge_request = MergeRequest.find(merge_request_id)
18 @updated_by = User.find updated_by_user_id 20 @updated_by = User.find updated_by_user_id
19 @project = @merge_request.project 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 end 24 end
22 25
23 def merged_merge_request_email(recipient_id, merge_request_id) 26 def merged_merge_request_email(recipient_id, merge_request_id)
24 @merge_request = MergeRequest.find(merge_request_id) 27 @merge_request = MergeRequest.find(merge_request_id)
25 @project = @merge_request.project 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 end 31 end
28 end 32 end
29 33
app/mailers/emails/notes.rb
@@ -4,27 +4,31 @@ module Emails @@ -4,27 +4,31 @@ module Emails
4 @note = Note.find(note_id) 4 @note = Note.find(note_id)
5 @commit = @note.noteable 5 @commit = @note.noteable
6 @project = @note.project 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 end 9 end
9 10
10 def note_issue_email(recipient_id, note_id) 11 def note_issue_email(recipient_id, note_id)
11 @note = Note.find(note_id) 12 @note = Note.find(note_id)
12 @issue = @note.noteable 13 @issue = @note.noteable
13 @project = @note.project 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 end 17 end
16 18
17 def note_merge_request_email(recipient_id, note_id) 19 def note_merge_request_email(recipient_id, note_id)
18 @note = Note.find(note_id) 20 @note = Note.find(note_id)
19 @merge_request = @note.noteable 21 @merge_request = @note.noteable
20 @project = @note.project 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 end 25 end
23 26
24 def note_wall_email(recipient_id, note_id) 27 def note_wall_email(recipient_id, note_id)
25 @note = Note.find(note_id) 28 @note = Note.find(note_id)
26 @project = @note.project 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 end 32 end
29 end 33 end
30 end 34 end