Alert commit author on note

Allows to alert only the commit author when a new note is added on a commit, useful when gitlabhq is used for code
reviews, allows less noise with mails...
This commit is contained in:
Cedric Gatay 2011-12-24 17:28:20 +01:00
parent 89a43543e9
commit c0b47d3245
5 changed files with 13 additions and 2 deletions

View file

@ -13,6 +13,7 @@ class NotesController < ApplicationController
@note = @project.notes.new(params[:note])
@note.author = current_user
@note.notify = true if params[:notify] == '1'
@note.notify_author = true if params[:notify_author] == '1'
@note.save
respond_to do |format|

View file

@ -28,6 +28,7 @@ class Notify < ActionMailer::Base
@note = note
@project = note.project
@commit = @project.repo.commits(note.noteable_id).first
return unless ( note.notify or ( note.notify_author and @commit.author.email == @user.email ) )
mail(:to => @user.email, :subject => "gitlab | #{@note.project.name} ")
end

View file

@ -27,7 +27,7 @@ class MailerObserver < ActiveRecord::Observer
end
def new_note(note)
return unless note.notify
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

View file

@ -14,6 +14,7 @@ class Note < ActiveRecord::Base
attr_protected :author, :author_id
attr_accessor :notify
attr_accessor :notify_author
validates_presence_of :project
@ -40,6 +41,10 @@ class Note < ActiveRecord::Base
def notify
@notify ||= false
end
def notify_author
@notify_author ||= false
end
end
# == Schema Information
#

View file

@ -23,9 +23,13 @@
%br
= f.file_field :attachment
= check_box_tag :notify, 1, true
= check_box_tag :notify, 1, @note.noteable_type != "Commit"
= label_tag :notify, "Notify project team about your note"
-if @note.noteable_type == "Commit"
= check_box_tag :notify_author, 1 , @note.noteable_type == "Commit"
= label_tag :notify_author, "Notify commit author about your note"
.clear
%br
= f.submit 'Add note', :class => "grey-button", :id => "submit_note"