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
					
				|  | @ -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…
	
		Reference in New Issue