Add confirmation screen when handling reports (#22375)
* Add confirmation screen on moderation actions * Add flash notice when a report has been processed * Refactor tests * Add tests
This commit is contained in:
		@@ -21,7 +21,7 @@ module Admin
 | 
			
		||||
      account_action.save!
 | 
			
		||||
 | 
			
		||||
      if account_action.with_report?
 | 
			
		||||
        redirect_to admin_reports_path
 | 
			
		||||
        redirect_to admin_reports_path, notice: I18n.t('admin.reports.processed_msg', id: params[:report_id])
 | 
			
		||||
      else
 | 
			
		||||
        redirect_to admin_account_path(@account.id)
 | 
			
		||||
      end
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,11 @@
 | 
			
		||||
class Admin::Reports::ActionsController < Admin::BaseController
 | 
			
		||||
  before_action :set_report
 | 
			
		||||
 | 
			
		||||
  def preview
 | 
			
		||||
    authorize @report, :show?
 | 
			
		||||
    @moderation_action = action_from_button
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def create
 | 
			
		||||
    authorize @report, :show?
 | 
			
		||||
 | 
			
		||||
@@ -13,7 +18,8 @@ class Admin::Reports::ActionsController < Admin::BaseController
 | 
			
		||||
        status_ids: @report.status_ids,
 | 
			
		||||
        current_account: current_account,
 | 
			
		||||
        report_id: @report.id,
 | 
			
		||||
        send_email_notification: !@report.spam?
 | 
			
		||||
        send_email_notification: !@report.spam?,
 | 
			
		||||
        text: params[:text]
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
      status_batch_action.save!
 | 
			
		||||
@@ -23,13 +29,16 @@ class Admin::Reports::ActionsController < Admin::BaseController
 | 
			
		||||
        report_id: @report.id,
 | 
			
		||||
        target_account: @report.target_account,
 | 
			
		||||
        current_account: current_account,
 | 
			
		||||
        send_email_notification: !@report.spam?
 | 
			
		||||
        send_email_notification: !@report.spam?,
 | 
			
		||||
        text: params[:text]
 | 
			
		||||
      )
 | 
			
		||||
 | 
			
		||||
      account_action.save!
 | 
			
		||||
    else
 | 
			
		||||
      return redirect_to admin_report_path(@report), alert: I18n.t('admin.reports.unknown_action_msg', action: action_from_button)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    redirect_to admin_reports_path
 | 
			
		||||
    redirect_to admin_reports_path, notice: I18n.t('admin.reports.processed_msg', id: @report.id)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
@@ -47,6 +56,8 @@ class Admin::Reports::ActionsController < Admin::BaseController
 | 
			
		||||
      'silence'
 | 
			
		||||
    elsif params[:suspend]
 | 
			
		||||
      'suspend'
 | 
			
		||||
    elsif params[:moderation_action]
 | 
			
		||||
      params[:moderation_action]
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user