Allows moderators to hide proposals from index
This commit is contained in:
8
app/assets/javascripts/moderator_proposals.js.coffee
Normal file
8
app/assets/javascripts/moderator_proposals.js.coffee
Normal file
@@ -0,0 +1,8 @@
|
||||
App.ModeratorProposals =
|
||||
|
||||
add_class_faded: (id) ->
|
||||
$("##{id}").addClass("faded")
|
||||
$("#comments").addClass("faded")
|
||||
|
||||
hide_moderator_actions: (id) ->
|
||||
$("##{id} .js-moderator-proposals-actions:first").hide()
|
||||
6
app/controllers/moderation/proposals_controller.rb
Normal file
6
app/controllers/moderation/proposals_controller.rb
Normal file
@@ -0,0 +1,6 @@
|
||||
class Moderation::ProposalsController < Moderation::BaseController
|
||||
load_and_authorize_resource
|
||||
def hide
|
||||
@proposal.hide
|
||||
end
|
||||
end
|
||||
38
spec/features/moderation/proposals_spec.rb
Normal file
38
spec/features/moderation/proposals_spec.rb
Normal file
@@ -0,0 +1,38 @@
|
||||
require 'rails_helper'
|
||||
|
||||
feature 'Moderate proposals' do
|
||||
|
||||
scenario 'Hide', :js do
|
||||
citizen = create(:user)
|
||||
moderator = create(:moderator)
|
||||
|
||||
proposal = create(:proposal)
|
||||
|
||||
login_as(moderator.user)
|
||||
visit proposal_path(proposal)
|
||||
|
||||
within("#proposal_#{proposal.id}") do
|
||||
click_link 'Hide'
|
||||
end
|
||||
|
||||
expect(page).to have_css("#proposal_#{proposal.id}.faded")
|
||||
|
||||
login_as(citizen)
|
||||
visit proposals_path
|
||||
|
||||
expect(page).to have_css('.proposal', count: 0)
|
||||
end
|
||||
|
||||
scenario 'Can not hide own proposal' do
|
||||
moderator = create(:moderator)
|
||||
proposal = create(:proposal, author: moderator.user)
|
||||
|
||||
login_as(moderator.user)
|
||||
visit proposal_path(proposal)
|
||||
|
||||
within("#proposal_#{proposal.id}") do
|
||||
expect(page).to_not have_link('Hide')
|
||||
expect(page).to_not have_link('Block author')
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user