From eccab62e32469771156a91443effbc3a90c7456e Mon Sep 17 00:00:00 2001 From: Marco Colli Date: Mon, 29 Dec 2014 13:30:58 +0100 Subject: [PATCH 1/2] Allow user to enable / disable notifications for a post from stream #5350 --- app/assets/images/icons-s71323e8d98.png | Bin 50590 -> 0 bytes app/assets/images/icons-sbcb16d92c7.png | Bin 0 -> 51059 bytes .../images/icons/create_participation.png | Bin 0 -> 1330 bytes .../images/icons/destroy_participation.png | Bin 0 -> 1405 bytes .../app/views/stream_post_views.js | 23 ++++- app/assets/stylesheets/application.css.scss | 16 ++++ .../templates/stream-element_tpl.jst.hbs | 9 ++ app/controllers/participations_controller.rb | 23 +++++ app/models/comment.rb | 2 +- app/presenters/post_presenter.rb | 7 +- config/locales/javascript/javascript.en.yml | 2 + config/routes.rb | 2 +- .../participations_controller_spec.rb | 79 ++++++++++++++++++ spec/models/comment_spec.rb | 8 +- 14 files changed, 165 insertions(+), 6 deletions(-) delete mode 100644 app/assets/images/icons-s71323e8d98.png create mode 100644 app/assets/images/icons-sbcb16d92c7.png create mode 100644 app/assets/images/icons/create_participation.png create mode 100644 app/assets/images/icons/destroy_participation.png create mode 100644 app/controllers/participations_controller.rb create mode 100644 spec/controllers/participations_controller_spec.rb diff --git a/app/assets/images/icons-s71323e8d98.png b/app/assets/images/icons-s71323e8d98.png deleted file mode 100644 index 026503b9a05591e4716e27fcc3e4fbb7f385f46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50590 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 Ap#T5? diff --git a/app/assets/images/icons-sbcb16d92c7.png b/app/assets/images/icons-sbcb16d92c7.png new file mode 100644 index 0000000000000000000000000000000000000000..8ddc17847a804a67114b953f421ed442ec129be3 GIT binary patch literal 51059 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 D%`7M? literal 0 HcmV?d00001 diff --git a/app/assets/images/icons/create_participation.png b/app/assets/images/icons/create_participation.png new file mode 100644 index 0000000000000000000000000000000000000000..7496495b9b16c5c5a8b96da79df6df08e3de55c6 GIT binary patch literal 1330 zcmV-214Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER0002VNkl5QN?FoZG42E-UaR)bY0{`d+I+pIB zyA|3zk-&Sc6l~yy8G&JB(`nCxjMrz9LtmZaB%7S z{@ygr6IB|uN_3}66znMx;Mq~1CpnZnDVbUIA02G-JW~*i6BkMDc-&xv<7l7HX2$c_w{08Ffg=G@GBXYK o`E5BrZ2YF=Um{5?G!DERZ=ZyJqyMDj#Q*>R07*qoM6N<$g6IN*<^TWy literal 0 HcmV?d00001 diff --git a/app/assets/images/icons/destroy_participation.png b/app/assets/images/icons/destroy_participation.png new file mode 100644 index 0000000000000000000000000000000000000000..f13d187a6c7b59103ef3bf9e57511df46277229a GIT binary patch literal 1405 zcmV-@1%mpCP)4Tx05}naRo`#hR1`jmZ&IWdKOk5~hl<6oRa0BJ8yc;~21%2p?MfD<>DVeH z9(p*dx19w`~g7O0}n_%Aq@s%d)fBDv`JHkDym6Hd+5XuAtvnwRpGmK zVkc9?T=n|PIo~X-eVh__(Z?q}P9Z-Dj?gOW6|D%o20XmjW-qs4UjrD(li^iv8@eK9k+ZFm zVRFymFOPAzG5-%Pn|1W;U4vNroTa&AxDScmEA~{ri9gr1^c?U@uwSpaNnw8l_>cP1 zd;)kMQS_;jeRSUEM_*s96y65j1$)tOrwdK{YIQMt92l|D^(E_=$Rjw{b!QT@q!)ni zR`|5oW9X5n$Wv+HVc@|^eX5yXnsHX8PF3UX~a6)MwxDE0HaPjyrlI!;jX{6Kvuh*8ej?;85ekN$?5uuCiS zBTvvVG+XTxAO{m@bvM#Jr)z6J><&E22D|vq?Y?Vkbo_DijopiF$2PET#mZ8eu=y$(ArYkv7@Ex`GL?QCc!_*KFrd&;n1r7 zqW-CFs9&fT)ZaU5gc&=gBz-DaCw(vdOp0__x+47~U6sC(E(JNe@4cTT*n6*E zVH4eoU1-&7pEV~_PRe`a7v+@vy!^5}8?Y3)UmlaER0003LNkl52FJC1}v3`EUn&H@P$30L3_5R(9x z;d28>I03{&B;;_Gm6(2BHR_$&nbnpA?oX9nZc9-VXI|L?x`9
+ {{#if participation}} + +
+
+ {{else}} + +
+
+ {{/if}}
diff --git a/app/controllers/participations_controller.rb b/app/controllers/participations_controller.rb new file mode 100644 index 000000000..a38089b91 --- /dev/null +++ b/app/controllers/participations_controller.rb @@ -0,0 +1,23 @@ +class ParticipationsController < ApplicationController + before_action :authenticate_user! + + def create + post = current_user.find_visible_shareable_by_id(Post, params[:post_id]) + if post + current_user.participate! post + render :nothing => true, :status => :created + else + render :nothing => true, :status => :forbidden + end + end + + def destroy + @participation = current_user.participations.find_by :target_id => params[:post_id] + if @participation + @participation.destroy + render :nothing => true, :status => :no_content + else + render :nothing => true, :status => :unprocessable_entity + end + end +end diff --git a/app/models/comment.rb b/app/models/comment.rb index b71fcaa22..aa86daedb 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -60,7 +60,7 @@ class Comment < ActiveRecord::Base def notification_type(user, person) if self.post.author == user.person return Notifications::CommentOnPost - elsif self.post.comments.where(:author_id => user.person.id) != [] && self.author_id != user.person.id + elsif user.participations.where(:target_id => self.post).exists? && self.author_id != user.person.id return Notifications::AlsoCommented else return false diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb index ff3877bf7..766961e96 100644 --- a/app/presenters/post_presenter.rb +++ b/app/presenters/post_presenter.rb @@ -41,13 +41,14 @@ class PostPresenter :address => @post.address, :poll => @post.poll(), :already_participated_in_poll => already_participated_in_poll, + :participation => participate?, :interactions => { :likes => [user_like].compact, :reshares => [user_reshare].compact, :comments_count => @post.comments_count, :likes_count => @post.likes_count, - :reshares_count => @post.reshares_count, + :reshares_count => @post.reshares_count } } end @@ -86,6 +87,10 @@ class PostPresenter end end + def participate? + user_signed_in? && @current_user.participations.where(:target_id => @post).exists? + end + end class PostInteractionPresenter diff --git a/config/locales/javascript/javascript.en.yml b/config/locales/javascript/javascript.en.yml index 349df2b36..1a28148f5 100644 --- a/config/locales/javascript/javascript.en.yml +++ b/config/locales/javascript/javascript.en.yml @@ -162,6 +162,8 @@ en: hide_nsfw_posts: "Hide #nsfw posts" follow: "Follow" unfollow: "Unfollow" + enable_post_notifications: "Enable notifications for this post" + disable_post_notifications: "Disable notifications for this post" via: "via <%= provider %>" likes: diff --git a/config/routes.rb b/config/routes.rb index 7d6e9785f..3bbdd4f6f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -36,7 +36,7 @@ Diaspora::Application.routes.draw do resources :poll_participations, :only => [:create] resources :likes, :only => [:create, :destroy, :index ] - resources :participations, :only => [:create, :destroy, :index] + resource :participation, :only => [:create, :destroy] resources :comments, :only => [:new, :create, :destroy, :index] end diff --git a/spec/controllers/participations_controller_spec.rb b/spec/controllers/participations_controller_spec.rb new file mode 100644 index 000000000..f9de58b39 --- /dev/null +++ b/spec/controllers/participations_controller_spec.rb @@ -0,0 +1,79 @@ +require 'spec_helper' + +describe ParticipationsController, :type => :controller do + before do + allow(@controller).to receive(:current_user).and_return(alice) + sign_in :user, alice + end + + describe '#create' do + let(:stranger) { FactoryGirl.create(:user) } + + shared_examples 'on a visible post' do + it 'creates the participation' do + post :create, post_id: @post.id + expect(alice.participations.where(:target_id => @post.id)).to exist + expect(response.code).to eq('201') + end + end + + context 'on my own post' do + before do + aspect_to_post = alice.aspects.where(:name => 'generic').first + @post = alice.post :status_message, :text => 'something', :to => aspect_to_post + end + + it_behaves_like 'on a visible post' + end + + context 'on a post from a contact' do + before do + aspect_to_post = bob.aspects.where(:name => 'generic').first + @post = bob.post :status_message, :text => 'something', :to => aspect_to_post + end + + it_behaves_like 'on a visible post' + end + + context 'on a public post from a stranger' do + before do + @post = stranger.post :status_message, :text => 'something', :public => true, :to => 'all' + end + + it_behaves_like 'on a visible post' + end + + context 'on a non visible post' do + before do + @post = stranger.post :status_message, :text => 'something', :public => false, :to => 'all' + end + + it 'should not create the participation' do + post :create, post_id: @post.id + expect(alice.participations.where(:target_id => @post.id)).not_to exist + expect(response.code).to eq('403') + end + end + end + + describe '#destroy' do + let(:post) { FactoryGirl.create(:status_message) } + + context 'on a post you partecipate to' do + before { alice.participate! post } + + it 'should remove participation' do + delete :destroy, post_id: post.id + expect(alice.participations.where(:target_id => post.id)).not_to exist + expect(response.code).to eq('204') + end + end + + context 'on a post you do not partecipate to' do + it 'says it is an unprocessable request' do + delete :destroy, post_id: post.id + expect(response.code).to eq('422') + end + end + end +end diff --git a/spec/models/comment_spec.rb b/spec/models/comment_spec.rb index efc7eacdc..2e2a91205 100644 --- a/spec/models/comment_spec.rb +++ b/spec/models/comment_spec.rb @@ -12,11 +12,17 @@ describe Comment, :type => :model do end describe 'comment#notification_type' do + let (:comment) { alice.comment!(@status, "why so formal?") } + it "returns 'comment_on_post' if the comment is on a post you own" do - comment = alice.comment!(@status, "why so formal?") expect(comment.notification_type(bob, alice.person)).to eq(Notifications::CommentOnPost) end + it "returns 'also_commented' if the comment is on a post you participate to" do + eve.participate! @status + expect(comment.notification_type(eve, alice.person)).to eq(Notifications::AlsoCommented) + end + it 'returns false if the comment is not on a post you own and no one "also_commented"' do comment = alice.comment!(@status, "I simply felt like issuing a greeting. Do step off.") expect(comment.notification_type(eve, alice.person)).to be false From 073e99992eac4362b9143933c4fe51632ed37d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonne=20Ha=C3=9F?= Date: Fri, 27 Feb 2015 15:31:30 +0100 Subject: [PATCH 2/2] Some fixes to participation controls * prevent default event in JS handlers to prevent jumping back to the top. * Use js-routes * Use sprite for icons * Reply with 200 instead of 204 when destroying a participation, to prevent errors in the browser console. --- .../javascripts/app/views/stream_post_views.js | 6 ++++-- app/assets/stylesheets/application.css.scss | 8 +++----- app/assets/templates/stream-element_tpl.jst.hbs | 8 ++++---- app/controllers/participations_controller.rb | 14 +++++++------- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/assets/javascripts/app/views/stream_post_views.js b/app/assets/javascripts/app/views/stream_post_views.js index c91ddc27d..2c772c4af 100644 --- a/app/assets/javascripts/app/views/stream_post_views.js +++ b/app/assets/javascripts/app/views/stream_post_views.js @@ -117,16 +117,18 @@ app.views.StreamPost = app.views.Post.extend({ }, createParticipation: function (evt) { + if(evt) { evt.preventDefault(); } that = this; - $.post("/posts/" + this.model.get("id") + "/participation", {}, function () { + $.post(Routes.post_participation_path(this.model.get("id")), {}, function () { that.model.set({participation: true}); that.render(); }); }, destroyParticipation: function (evt) { + if(evt) { evt.preventDefault(); } that = this; - $.post("/posts/" + this.model.get("id") + "/participation", { _method: "delete" }, function () { + $.post(Routes.post_participation_path(this.model.get("id")), { _method: "delete" }, function () { that.model.set({participation: false}); that.render(); }); diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index 9e45891b6..65f0771cd 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -281,20 +281,18 @@ ul.as-selections { } .create_participation { display: inline-block; - .icons-create-participation { + .icons-create_participation { height: 14px; width: 14px; - background: image-url("icons/create_participation.png") center; } } .destroy_participation { display: inline-block; - .icons-destroy-participation { + .icons-destroy_participation { height: 14px; width: 14px; - background: image-url("icons/destroy_participation.png") center; } - } + } .delete { display: inline-block; .icons-deletelabel { diff --git a/app/assets/templates/stream-element_tpl.jst.hbs b/app/assets/templates/stream-element_tpl.jst.hbs index 24d976dc8..4ed0daeb9 100644 --- a/app/assets/templates/stream-element_tpl.jst.hbs +++ b/app/assets/templates/stream-element_tpl.jst.hbs @@ -18,13 +18,13 @@ {{#if participation}} -
+
{{else}} -
+
- {{/if}} + {{/if}}
@@ -35,7 +35,7 @@ {{/unless}}
{{/if}} - +
{{#with author}} {{name}} diff --git a/app/controllers/participations_controller.rb b/app/controllers/participations_controller.rb index a38089b91..95e8a2c03 100644 --- a/app/controllers/participations_controller.rb +++ b/app/controllers/participations_controller.rb @@ -5,19 +5,19 @@ class ParticipationsController < ApplicationController post = current_user.find_visible_shareable_by_id(Post, params[:post_id]) if post current_user.participate! post - render :nothing => true, :status => :created + render nothing: true, status: :created else - render :nothing => true, :status => :forbidden + render nothing: true, status: :forbidden end end def destroy - @participation = current_user.participations.find_by :target_id => params[:post_id] - if @participation - @participation.destroy - render :nothing => true, :status => :no_content + participation = current_user.participations.find_by target_id: params[:post_id] + if participation + participation.destroy + render nothing: true, status: :ok else - render :nothing => true, :status => :unprocessable_entity + render nothing: true, status: :unprocessable_entity end end end