Add UI to view report details, remove reported statuses, quick links to resolve/silence/suspend from report
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