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;
|
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…
Reference in a new issue