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,66 +16,73 @@ class MailerObserver < ActiveRecord::Observer
16 16
17 protected 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 end 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 end 43 end
45 end 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 end 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 end 60 end
62 end 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 end 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 end 87 end
81 end 88 end