Commit 8d7aaf0e5501c472504467b9252dd5bde14a98c8

Authored by Dmitriy Zaporozhets
1 parent e29b7d52

Note on merge request open/close

Showing 1 changed file with 53 additions and 46 deletions   Show diff stats
app/models/mailer_observer.rb
... ... @@ -16,66 +16,73 @@ class MailerObserver < ActiveRecord::Observer
16 16  
17 17 protected
18 18  
19   - def new_issue(issue)
20   - if issue.assignee != current_user
21   - Notify.new_issue_email(issue).deliver
22   - end
  19 + def new_issue(issue)
  20 + if issue.assignee != current_user
  21 + Notify.new_issue_email(issue).deliver
23 22 end
  23 + end
24 24  
25   - def new_user(user)
26   - Notify.new_user_email(user, user.password).deliver
27   - end
  25 + def new_user(user)
  26 + Notify.new_user_email(user, user.password).deliver
  27 + end
28 28  
29   - def new_note(note)
30   - return unless note.notify or note.notify_author
31   - note.project.users.reject { |u| u.id == current_user.id } .each do |u|
32   - case note.noteable_type
33   - when "Commit" then
34   - Notify.note_commit_email(u, note).deliver
35   - when "Issue" then
36   - Notify.note_issue_email(u, note).deliver
37   - when "MergeRequest" then
38   - Notify.note_merge_request_email(u, note).deliver
39   - when "Snippet"
40   - true
41   - else
42   - Notify.note_wall_email(u, note).deliver
43   - end
  29 + def new_note(note)
  30 + return unless note.notify or note.notify_author
  31 + note.project.users.reject { |u| u.id == current_user.id } .each do |u|
  32 + case note.noteable_type
  33 + when "Commit" then
  34 + Notify.note_commit_email(u, note).deliver
  35 + when "Issue" then
  36 + Notify.note_issue_email(u, note).deliver
  37 + when "MergeRequest" then
  38 + Notify.note_merge_request_email(u, note).deliver
  39 + when "Snippet"
  40 + true
  41 + else
  42 + Notify.note_wall_email(u, note).deliver
44 43 end
45 44 end
  45 + end
46 46  
47   - def new_merge_request(merge_request)
48   - if merge_request.assignee != current_user
49   - Notify.new_merge_request_email(merge_request).deliver
50   - end
  47 + def new_merge_request(merge_request)
  48 + if merge_request.assignee != current_user
  49 + Notify.new_merge_request_email(merge_request).deliver
51 50 end
  51 + end
52 52  
53   - def changed_merge_request(merge_request)
54   - if merge_request.assignee_id_changed?
55   - recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id
56   - recipients_ids.delete current_user.id
  53 + def changed_merge_request(merge_request)
  54 + if merge_request.assignee_id_changed?
  55 + recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id
  56 + recipients_ids.delete current_user.id
57 57  
58   - User.find(recipients_ids).each do |user|
59   - Notify.changed_merge_request_email(user, merge_request).deliver
60   - end
  58 + User.find(recipients_ids).each do |user|
  59 + Notify.changed_merge_request_email(user, merge_request).deliver
61 60 end
62 61 end
63 62  
64   - def changed_issue(issue)
65   - if issue.assignee_id_changed?
66   - recipients_ids = issue.assignee_id_was, issue.assignee_id
67   - recipients_ids.delete current_user.id
  63 + if merge_request.closed_changed?
  64 + note = Note.new(:noteable => merge_request, :project => merge_request.project)
  65 + note.author = current_user
  66 + note.note = "_Status changed to #{merge_request.closed ? 'closed' : 'reopened'}_"
  67 + note.save()
  68 + end
  69 + end
68 70  
69   - User.find(recipients_ids).each do |user|
70   - Notify.changed_issue_email(user, issue).deliver
71   - end
72   - end
  71 + def changed_issue(issue)
  72 + if issue.assignee_id_changed?
  73 + recipients_ids = issue.assignee_id_was, issue.assignee_id
  74 + recipients_ids.delete current_user.id
73 75  
74   - if issue.closed_changed?
75   - note = Note.new(:noteable => issue, :project => issue.project)
76   - note.author = current_user
77   - note.note = "_Status changed to #{issue.closed ? 'closed' : 'reopened'}_"
78   - note.save()
  76 + User.find(recipients_ids).each do |user|
  77 + Notify.changed_issue_email(user, issue).deliver
79 78 end
  79 + end
  80 +
  81 + if issue.closed_changed?
  82 + note = Note.new(:noteable => issue, :project => issue.project)
  83 + note.author = current_user
  84 + note.note = "_Status changed to #{issue.closed ? 'closed' : 'reopened'}_"
  85 + note.save()
  86 + end
80 87 end
81 88 end
... ...