From 1990092fdf3d46abc9ba73117e35b552d88c869f Mon Sep 17 00:00:00 2001 From: Angel Perez Date: Mon, 18 Jun 2018 01:16:26 -0400 Subject: [PATCH] Allow moderators to hide inappropriate investments --- app/assets/javascripts/application.js | 1 + .../moderator_budget_investments.js.coffee | 8 +++++++ app/controllers/concerns/polymorphic.rb | 6 ++++- .../budgets/investments_controller.rb | 24 +++++++++++++++++++ .../budgets/investments/hide.js.erb | 3 +++ config/routes/moderation.rb | 2 +- 6 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 app/assets/javascripts/moderator_budget_investments.js.coffee create mode 100644 app/controllers/moderation/budgets/investments_controller.rb create mode 100644 app/views/moderation/budgets/investments/hide.js.erb diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index a9e44d249..3cd91467b 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -33,6 +33,7 @@ //= require moderator_comment //= require moderator_debates //= require moderator_proposals +//= require moderator_budget_investments //= require moderator_proposal_notifications //= require prevent_double_submission //= require gettext diff --git a/app/assets/javascripts/moderator_budget_investments.js.coffee b/app/assets/javascripts/moderator_budget_investments.js.coffee new file mode 100644 index 000000000..612a058a4 --- /dev/null +++ b/app/assets/javascripts/moderator_budget_investments.js.coffee @@ -0,0 +1,8 @@ +App.ModeratorBudgetInvestments = + + add_class_faded: (id) -> + $("##{id}").addClass("faded") + $("#comments").addClass("faded") + + hide_moderator_actions: (id) -> + $("##{id} .js-moderator-investment-actions:first").hide() diff --git a/app/controllers/concerns/polymorphic.rb b/app/controllers/concerns/polymorphic.rb index 8fd4ab312..0e25b4231 100644 --- a/app/controllers/concerns/polymorphic.rb +++ b/app/controllers/concerns/polymorphic.rb @@ -3,7 +3,11 @@ module Polymorphic private def resource - @resource ||= instance_variable_get("@#{resource_name}") + if resource_model.to_s == 'Budget::Investment' + @resource ||= instance_variable_get("@investment") + else + @resource ||= instance_variable_get("@#{resource_name}") + end end def resource_name diff --git a/app/controllers/moderation/budgets/investments_controller.rb b/app/controllers/moderation/budgets/investments_controller.rb new file mode 100644 index 000000000..7f33058e8 --- /dev/null +++ b/app/controllers/moderation/budgets/investments_controller.rb @@ -0,0 +1,24 @@ +class Moderation::Budgets::InvestmentsController < Moderation::BaseController + include FeatureFlags + include ModerateActions + + has_filters %w{pending_flag_review all with_ignored_flag}, only: :index + has_orders %w{flags created_at}, only: :index + + feature_flag :budgets + + before_action :load_resources, only: [:index, :moderate] + + load_and_authorize_resource class: 'Budget::Investment' + + private + + def resource_name + 'budget_investment' + end + + def resource_model + Budget::Investment + end + +end diff --git a/app/views/moderation/budgets/investments/hide.js.erb b/app/views/moderation/budgets/investments/hide.js.erb new file mode 100644 index 000000000..9365b3837 --- /dev/null +++ b/app/views/moderation/budgets/investments/hide.js.erb @@ -0,0 +1,3 @@ +var investment_id = '<%= dom_id(@investment) %>' +App.ModeratorBudgetInvestments.add_class_faded(investment_id) +App.ModeratorBudgetInvestments.hide_moderator_actions(investment_id) diff --git a/config/routes/moderation.rb b/config/routes/moderation.rb index f68af0598..e6b0020cd 100644 --- a/config/routes/moderation.rb +++ b/config/routes/moderation.rb @@ -28,7 +28,7 @@ namespace :moderation do put :moderate, on: :collection end - resources :budget_investments, only: :index do + resources :budget_investments, only: :index, controller: 'budgets/investments' do put :hide, on: :member put :moderate, on: :collection end