Commit db582b638382f15f7e373fd79b90e4fc0f494a37
1 parent
7713f7fe
Exists in
master
and in
4 other branches
Notification when created merge request
Showing
3 changed files
with
35 additions
and
1 deletions
Show diff stats
app/mailers/notify.rb
| @@ -38,4 +38,11 @@ class Notify < ActionMailer::Base | @@ -38,4 +38,11 @@ class Notify < ActionMailer::Base | ||
| 38 | @issue = note.noteable | 38 | @issue = note.noteable |
| 39 | mail(:to => @user.email, :subject => "gitlab | #{@note.project.name} ") | 39 | mail(:to => @user.email, :subject => "gitlab | #{@note.project.name} ") |
| 40 | end | 40 | end |
| 41 | + | ||
| 42 | + def new_merge_request_email(merge_request) | ||
| 43 | + @user = merge_request.assignee | ||
| 44 | + @merge_request = merge_request | ||
| 45 | + @project = merge_request.project | ||
| 46 | + mail(:to => @user.email, :subject => "gitlab | #{@merge_request.title} ") | ||
| 47 | + end | ||
| 41 | end | 48 | end |
app/models/mailer_observer.rb
| 1 | class MailerObserver < ActiveRecord::Observer | 1 | class MailerObserver < ActiveRecord::Observer |
| 2 | - observe :issue, :user, :note, :snippet | 2 | + observe :issue, :user, :note, :merge_request |
| 3 | cattr_accessor :current_user | 3 | cattr_accessor :current_user |
| 4 | 4 | ||
| 5 | def after_create(model) | 5 | def after_create(model) |
| 6 | new_issue(model) if model.kind_of?(Issue) | 6 | new_issue(model) if model.kind_of?(Issue) |
| 7 | new_user(model) if model.kind_of?(User) | 7 | new_user(model) if model.kind_of?(User) |
| 8 | new_note(model) if model.kind_of?(Note) | 8 | new_note(model) if model.kind_of?(Note) |
| 9 | + new_merge_request(model) if model.kind_of?(MergeRequest) | ||
| 9 | end | 10 | end |
| 10 | 11 | ||
| 11 | protected | 12 | protected |
| @@ -38,4 +39,10 @@ class MailerObserver < ActiveRecord::Observer | @@ -38,4 +39,10 @@ class MailerObserver < ActiveRecord::Observer | ||
| 38 | end | 39 | end |
| 39 | end | 40 | end |
| 40 | 41 | ||
| 42 | + def new_merge_request(merge_request) | ||
| 43 | + if merge_request.assignee != current_user | ||
| 44 | + Notify.new_merge_request_email(merge_request).deliver | ||
| 45 | + end | ||
| 46 | + end | ||
| 47 | + | ||
| 41 | end | 48 | end |
| @@ -0,0 +1,20 @@ | @@ -0,0 +1,20 @@ | ||
| 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 | + New 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 | + Branches: #{@merge_request.source_branch} → #{@merge_request.target_branch} | ||
| 15 | + | ||
| 16 | + %p{:style => "color:#767676; font-weight: normal; margin: 0; padding: 0; line-height: 20px; font-size: 12px;font-family: Helvetica, Arial, sans-serif; "} | ||
| 17 | + Asignee: #{@merge_request.author.name} → #{@merge_request.assignee.name} | ||
| 18 | + | ||
| 19 | + %td | ||
| 20 | + |