Commit df5b192e4d864cc8b27976bfc814a5e445ae8e1d

Authored by Valery Sizov
1 parent db582b63

notification when merge request reassigned

app/mailers/notify.rb
... ... @@ -45,4 +45,12 @@ class Notify < ActionMailer::Base
45 45 @project = merge_request.project
46 46 mail(:to => @user.email, :subject => "gitlab | #{@merge_request.title} ")
47 47 end
  48 +
  49 + def changed_merge_request_email(user, merge_request)
  50 + @user = user
  51 + @assignee_was ||= User.find(merge_request.assignee_id_was)
  52 + @merge_request = merge_request
  53 + @project = merge_request.project
  54 + mail(:to => @user.email, :subject => "gitlab | #{@merge_request.title} ")
  55 + end
48 56 end
... ...
app/models/mailer_observer.rb
... ... @@ -9,6 +9,10 @@ class MailerObserver < ActiveRecord::Observer
9 9 new_merge_request(model) if model.kind_of?(MergeRequest)
10 10 end
11 11  
  12 + def after_update(model)
  13 + changed_merge_request(model) if model.kind_of?(MergeRequest)
  14 + end
  15 +
12 16 protected
13 17  
14 18 def new_issue(issue)
... ... @@ -45,4 +49,16 @@ class MailerObserver < ActiveRecord::Observer
45 49 end
46 50 end
47 51  
  52 + def changed_merge_request(merge_request)
  53 + if merge_request.assignee_id_changed?
  54 + recipients_ids = [merge_request.assignee_id_was]
  55 + recipients_ids << merge_request.assignee_id
  56 + recipients_ids.delete current_user.id
  57 +
  58 + User.find(recipients_ids).each do |user|
  59 + Notify.changed_merge_request_email(user, merge_request).deliver
  60 + end
  61 + end
  62 + end
  63 +
48 64 end
... ...
app/views/notify/changed_merge_request_email.html.haml 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +%td.content{:align => "left", :style => "font-family: Helvetica, Arial, sans-serif; padding: 20px 0 0;", :valign => "top", :width => "600"}
  2 + %table{:border => "0", :cellpadding => "0", :cellspacing => "0", :style => "color: #717171; font: normal 11px Helvetica, Arial, sans-serif; margin: 0; padding: 0;", :width => "600"}
  3 + %tr
  4 + %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
  5 + %td{:align => "left", :style => "padding: 20px 0 0;"}
  6 + %h2{:style => "color:#646464; font-weight: bold; margin: 0; padding: 0; line-height: 26px; font-size: 18px; font-family: Helvetica, Arial, sans-serif; "}
  7 + Reassigned Merge Request
  8 + = link_to truncate(@merge_request.title, :length => 16), project_merge_request_url(@project, @merge_request)
  9 + %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
  10 + %tr
  11 + %td{:style => "font-size: 1px; line-height: 1px;", :width => "21"}
  12 + %td{:style => "padding: 15px 0 15px;", :valign => "top"}
  13 + %p{:style => "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "}
  14 + Assignee changed from #{@assignee_was.name} to #{@merge_request.assignee.name}
  15 + %td
  16 +
... ...