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; |       margin-bottom: 40px; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     p { |     & > p { | ||||||
|       font-size: 14px; |       font-size: 14px; | ||||||
|       line-height: 18px; |       line-height: 18px; | ||||||
|       color: $color2; |       color: $color2; | ||||||
| @ -104,6 +104,13 @@ | |||||||
|         font-weight: 500; |         font-weight: 500; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     hr { | ||||||
|  |       margin: 20px 0; | ||||||
|  |       border: 0; | ||||||
|  |       background: transparent; | ||||||
|  |       border-bottom: 1px solid $color1; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .simple_form { |   .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 | class Admin::ReportsController < ApplicationController | ||||||
|   before_action :require_admin! |   before_action :require_admin! | ||||||
|  |   before_action :set_report, except: [:index] | ||||||
| 
 | 
 | ||||||
|   layout 'admin' |   layout 'admin' | ||||||
| 
 | 
 | ||||||
| @ -11,7 +12,34 @@ class Admin::ReportsController < ApplicationController | |||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   def show |   def show | ||||||
|     @report   = Report.find(params[:id]) |  | ||||||
|     @statuses = Status.where(id: @report.status_ids) |     @statuses = Status.where(id: @report.status_ids) | ||||||
|   end |   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 | end | ||||||
|  | |||||||
| @ -1,2 +1,38 @@ | |||||||
| - content_for :page_title do | - content_for :page_title do | ||||||
|   = "Report ##{@report.id}" |   = "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 :pubsubhubbub, only: [:index] | ||||||
|     resources :domain_blocks, only: [:index, :create] |     resources :domain_blocks, only: [:index, :create] | ||||||
|     resources :settings, only: [:index, :update] |     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 |     resources :accounts, only: [:index, :show] do | ||||||
|       member do |       member do | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user