Add UI to view report details, remove reported statuses, quick links to resolve/silence/suspend from report
This commit is contained in:
		
							parent
							
								
									9c88d1b99e
								
							
						
					
					
						commit
						d0f087db2d
					
				
					 4 changed files with 118 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -93,7 +93,7 @@
 | 
			
		|||
      margin-bottom: 40px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    p {
 | 
			
		||||
    & > p {
 | 
			
		||||
      font-size: 14px;
 | 
			
		||||
      line-height: 18px;
 | 
			
		||||
      color: $color2;
 | 
			
		||||
| 
						 | 
				
			
			@ -104,6 +104,13 @@
 | 
			
		|||
        font-weight: 500;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    hr {
 | 
			
		||||
      margin: 20px 0;
 | 
			
		||||
      border: 0;
 | 
			
		||||
      background: transparent;
 | 
			
		||||
      border-bottom: 1px solid $color1;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .simple_form {
 | 
			
		||||
| 
						 | 
				
			
			@ -180,3 +187,39 @@
 | 
			
		|||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.report-accounts {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  margin-bottom: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.report-accounts__item {
 | 
			
		||||
  flex: 1 1 0;
 | 
			
		||||
 | 
			
		||||
  & > strong {
 | 
			
		||||
    display: block;
 | 
			
		||||
    margin-bottom: 10px;
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
    font-size: 14px;
 | 
			
		||||
    line-height: 18px;
 | 
			
		||||
    color: $color2;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  &:first-child {
 | 
			
		||||
    margin-right: 10px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.report-status {
 | 
			
		||||
  display: flex;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
 | 
			
		||||
  .activity-stream {
 | 
			
		||||
    flex: 2 0 auto;
 | 
			
		||||
    margin-right: 20px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.report-status__actions {
 | 
			
		||||
  flex: 0 0 auto;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
 | 
			
		||||
class Admin::ReportsController < ApplicationController
 | 
			
		||||
  before_action :require_admin!
 | 
			
		||||
  before_action :set_report, except: [:index]
 | 
			
		||||
 | 
			
		||||
  layout 'admin'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +12,34 @@ class Admin::ReportsController < ApplicationController
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def show
 | 
			
		||||
    @report   = Report.find(params[:id])
 | 
			
		||||
    @statuses = Status.where(id: @report.status_ids)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def resolve
 | 
			
		||||
    @report.update(action_taken: true)
 | 
			
		||||
    redirect_to admin_report_path(@report)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def suspend
 | 
			
		||||
    Admin::SuspensionWorker.perform_async(@report.target_account.id)
 | 
			
		||||
    @report.update(action_taken: true)
 | 
			
		||||
    redirect_to admin_report_path(@report)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def silence
 | 
			
		||||
    @report.target_account.update(silenced: true)
 | 
			
		||||
    @report.update(action_taken: true)
 | 
			
		||||
    redirect_to admin_report_path(@report)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def remove
 | 
			
		||||
    RemovalWorker.perform_async(params[:status_id])
 | 
			
		||||
    redirect_to admin_report_path(@report)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def set_report
 | 
			
		||||
    @report = Report.find(params[:id])
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,38 @@
 | 
			
		|||
- content_for :page_title do
 | 
			
		||||
  = "Report ##{@report.id}"
 | 
			
		||||
 | 
			
		||||
.report-accounts
 | 
			
		||||
  .report-accounts__item
 | 
			
		||||
    %strong Reported account:
 | 
			
		||||
    = render partial: 'authorize_follow/card', locals: { account: @report.target_account }
 | 
			
		||||
  .report-accounts__item
 | 
			
		||||
    %strong Reported by:
 | 
			
		||||
    = render partial: 'authorize_follow/card', locals: { account: @report.account }
 | 
			
		||||
 | 
			
		||||
%p
 | 
			
		||||
  %strong Comment:
 | 
			
		||||
  - if @report.comment.blank?
 | 
			
		||||
    None
 | 
			
		||||
  - else
 | 
			
		||||
    = @report.comment
 | 
			
		||||
 | 
			
		||||
- unless @statuses.empty?
 | 
			
		||||
  %hr/
 | 
			
		||||
 | 
			
		||||
  - @statuses.each do |status|
 | 
			
		||||
    .report-status
 | 
			
		||||
      .activity-stream.activity-stream-headless
 | 
			
		||||
        .entry= render partial: 'stream_entries/simple_status', locals: { status: status }
 | 
			
		||||
      .report-status__actions
 | 
			
		||||
        = link_to remove_admin_report_path(@report, status_id: status.id), method: :post, class: 'icon-button', style: 'font-size: 24px; width: 24px; height: 24px', title: 'Delete' do
 | 
			
		||||
          = fa_icon 'trash'
 | 
			
		||||
 | 
			
		||||
- unless @report.action_taken?
 | 
			
		||||
  %hr/
 | 
			
		||||
 | 
			
		||||
  %div{ style: 'overflow: hidden' }
 | 
			
		||||
    %div{ style: 'float: right' }
 | 
			
		||||
      = link_to 'Silence account', silence_admin_report_path(@report), method: :post, class: 'button'
 | 
			
		||||
      = link_to 'Suspend account', suspend_admin_report_path(@report), method: :post, class: 'button'
 | 
			
		||||
    %div{ style: 'float: left' }
 | 
			
		||||
      = link_to 'Mark as resolved', resolve_admin_report_path(@report), method: :post, class: 'button'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,15 @@ Rails.application.routes.draw do
 | 
			
		|||
    resources :pubsubhubbub, only: [:index]
 | 
			
		||||
    resources :domain_blocks, only: [:index, :create]
 | 
			
		||||
    resources :settings, only: [:index, :update]
 | 
			
		||||
    resources :reports, only: [:index, :show]
 | 
			
		||||
 | 
			
		||||
    resources :reports, only: [:index, :show] do
 | 
			
		||||
      member do
 | 
			
		||||
        post :resolve
 | 
			
		||||
        post :silence
 | 
			
		||||
        post :suspend
 | 
			
		||||
        post :remove
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    resources :accounts, only: [:index, :show] do
 | 
			
		||||
      member do
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue