From: Mikel Maron Date: Wed, 12 Oct 2016 14:52:05 +0000 (-0400) Subject: merge upstream/master and resolve conflicts from https://github.com/openstreetmap... X-Git-Tag: live~3776^2 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/be40536440b8677323bcf30bc2b869e36f907dd9 merge upstream/master and resolve conflicts from https://github.com/openstreetmap/openstreetmap-website/pull/1318 --- be40536440b8677323bcf30bc2b869e36f907dd9 diff --cc app/controllers/diary_entry_controller.rb index fdc0e9d24,384362364..bf9f2a9a2 --- a/app/controllers/diary_entry_controller.rb +++ b/app/controllers/diary_entry_controller.rb @@@ -24,11 -24,7 +24,11 @@@ class DiaryEntryController < Applicatio else @user.preferences.create(:k => "diary.default_language", :v => @diary_entry.language_code) end + + # Subscribe user to diary comments + @diary_entry.subscriptions.create(:user => @user) + - redirect_to :controller => "diary_entry", :action => "list", :display_name => @user.display_name + redirect_to :action => "list", :display_name => @user.display_name else render :action => "edit" end @@@ -61,44 -57,17 +61,44 @@@ @diary_comment = @entry.comments.build(comment_params) @diary_comment.user = @user if @diary_comment.save - if @diary_comment.user != @entry.user - Notifier.diary_comment_notification(@diary_comment).deliver_now + + # Notify current subscribers of the new comment + @entry.subscribers.visible.each do |user| + if @user != user + Notifier.diary_comment_notification(@diary_comment, user).deliver_now + end end + # Add the commenter to the subscribers if necessary + @entry.subscriptions.create(:user => @user) unless @entry.subscribers.exists?(@user.id) + - redirect_to :controller => "diary_entry", :action => "view", :display_name => @entry.user.display_name, :id => @entry.id + redirect_to :action => "view", :display_name => @entry.user.display_name, :id => @entry.id else render :action => "view" end rescue ActiveRecord::RecordNotFound render :action => "no_such_entry", :status => :not_found end + + def subscribe + diary_entry = DiaryEntry.find(params[:id]) + + diary_entry.subscriptions.create(:user => @user) unless diary_entry.subscribers.exists?(@user.id) + - redirect_to :controller => "diary_entry", :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id ++ redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id + rescue ActiveRecord::RecordNotFound + render :action => "no_such_entry", :status => :not_found + end + + def unsubscribe + diary_entry = DiaryEntry.find(params[:id]) + + diary_entry.subscriptions.where(:user => @user).delete_all if diary_entry.subscribers.exists?(@user.id) + - redirect_to :controller => "diary_entry", :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id ++ redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id + rescue ActiveRecord::RecordNotFound + render :action => "no_such_entry", :status => :not_found + end def list if params[:display_name]