Commit df5b192e4d864cc8b27976bfc814a5e445ae8e1d
1 parent
db582b63
Exists in
master
and in
4 other branches
notification when merge request reassigned
Showing
3 changed files
with
40 additions
and
0 deletions
Show diff stats
app/mailers/notify.rb
@@ -45,4 +45,12 @@ class Notify < ActionMailer::Base | @@ -45,4 +45,12 @@ class Notify < ActionMailer::Base | ||
45 | @project = merge_request.project | 45 | @project = merge_request.project |
46 | mail(:to => @user.email, :subject => "gitlab | #{@merge_request.title} ") | 46 | mail(:to => @user.email, :subject => "gitlab | #{@merge_request.title} ") |
47 | end | 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 | end | 56 | end |
app/models/mailer_observer.rb
@@ -9,6 +9,10 @@ class MailerObserver < ActiveRecord::Observer | @@ -9,6 +9,10 @@ class MailerObserver < ActiveRecord::Observer | ||
9 | new_merge_request(model) if model.kind_of?(MergeRequest) | 9 | new_merge_request(model) if model.kind_of?(MergeRequest) |
10 | end | 10 | end |
11 | 11 | ||
12 | + def after_update(model) | ||
13 | + changed_merge_request(model) if model.kind_of?(MergeRequest) | ||
14 | + end | ||
15 | + | ||
12 | protected | 16 | protected |
13 | 17 | ||
14 | def new_issue(issue) | 18 | def new_issue(issue) |
@@ -45,4 +49,16 @@ class MailerObserver < ActiveRecord::Observer | @@ -45,4 +49,16 @@ class MailerObserver < ActiveRecord::Observer | ||
45 | end | 49 | end |
46 | end | 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 | end | 64 | end |
@@ -0,0 +1,16 @@ | @@ -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 | + |