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:
parent
89a43543e9
commit
c0b47d3245
|
@ -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|
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
#
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue