diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-01-03 21:46:53 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2012-01-03 21:46:53 +0200 |
commit | 8d7aaf0e5501c472504467b9252dd5bde14a98c8 (patch) | |
tree | c19ec417393077ac391c0562bd8bffd7cc9e2a25 | |
parent | e29b7d52fc312877d63b453a928bd151450b3d5e (diff) | |
download | gitlab-ce-8d7aaf0e5501c472504467b9252dd5bde14a98c8.tar.gz |
Note on merge request open/close
-rw-r--r-- | app/models/mailer_observer.rb | 99 |
1 files changed, 53 insertions, 46 deletions
diff --git a/app/models/mailer_observer.rb b/app/models/mailer_observer.rb index f59469a1608..2bf383e5de0 100644 --- a/app/models/mailer_observer.rb +++ b/app/models/mailer_observer.rb @@ -16,66 +16,73 @@ class MailerObserver < ActiveRecord::Observer protected - def new_issue(issue) - if issue.assignee != current_user - Notify.new_issue_email(issue).deliver - end + def new_issue(issue) + if issue.assignee != current_user + Notify.new_issue_email(issue).deliver end + end - def new_user(user) - Notify.new_user_email(user, user.password).deliver - end + def new_user(user) + Notify.new_user_email(user, user.password).deliver + end - def new_note(note) - return unless note.notify or note.notify_author - note.project.users.reject { |u| u.id == current_user.id } .each do |u| - case note.noteable_type - when "Commit" then - Notify.note_commit_email(u, note).deliver - when "Issue" then - Notify.note_issue_email(u, note).deliver - when "MergeRequest" then - Notify.note_merge_request_email(u, note).deliver - when "Snippet" - true - else - Notify.note_wall_email(u, note).deliver - end + def new_note(note) + return unless note.notify or note.notify_author + note.project.users.reject { |u| u.id == current_user.id } .each do |u| + case note.noteable_type + when "Commit" then + Notify.note_commit_email(u, note).deliver + when "Issue" then + Notify.note_issue_email(u, note).deliver + when "MergeRequest" then + Notify.note_merge_request_email(u, note).deliver + when "Snippet" + true + else + Notify.note_wall_email(u, note).deliver end end + end - def new_merge_request(merge_request) - if merge_request.assignee != current_user - Notify.new_merge_request_email(merge_request).deliver - end + def new_merge_request(merge_request) + if merge_request.assignee != current_user + Notify.new_merge_request_email(merge_request).deliver end + end - def changed_merge_request(merge_request) - if merge_request.assignee_id_changed? - recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id - recipients_ids.delete current_user.id + def changed_merge_request(merge_request) + if merge_request.assignee_id_changed? + recipients_ids = merge_request.assignee_id_was, merge_request.assignee_id + recipients_ids.delete current_user.id - User.find(recipients_ids).each do |user| - Notify.changed_merge_request_email(user, merge_request).deliver - end + User.find(recipients_ids).each do |user| + Notify.changed_merge_request_email(user, merge_request).deliver end end - def changed_issue(issue) - if issue.assignee_id_changed? - recipients_ids = issue.assignee_id_was, issue.assignee_id - recipients_ids.delete current_user.id + if merge_request.closed_changed? + note = Note.new(:noteable => merge_request, :project => merge_request.project) + note.author = current_user + note.note = "_Status changed to #{merge_request.closed ? 'closed' : 'reopened'}_" + note.save() + end + end - User.find(recipients_ids).each do |user| - Notify.changed_issue_email(user, issue).deliver - end - end + def changed_issue(issue) + if issue.assignee_id_changed? + recipients_ids = issue.assignee_id_was, issue.assignee_id + recipients_ids.delete current_user.id - if issue.closed_changed? - note = Note.new(:noteable => issue, :project => issue.project) - note.author = current_user - note.note = "_Status changed to #{issue.closed ? 'closed' : 'reopened'}_" - note.save() + User.find(recipients_ids).each do |user| + Notify.changed_issue_email(user, issue).deliver end + end + + if issue.closed_changed? + note = Note.new(:noteable => issue, :project => issue.project) + note.author = current_user + note.note = "_Status changed to #{issue.closed ? 'closed' : 'reopened'}_" + note.save() + end end end |