Quellcode durchsuchen

Add UI to view report details, remove reported statuses, quick links to resolve/silence/suspend from report

master
Eugen Rochko vor 7 Jahren
Ursprung
Commit
d0f087db2d
4 geänderte Dateien mit 118 neuen und 3 gelöschten Zeilen
  1. +44
    -1
      app/assets/stylesheets/admin.scss
  2. +29
    -1
      app/controllers/admin/reports_controller.rb
  3. +36
    -0
      app/views/admin/reports/show.html.haml
  4. +9
    -1
      config/routes.rb

+ 44
- 1
app/assets/stylesheets/admin.scss Datei anzeigen

@@ -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;
}

+ 29
- 1
app/controllers/admin/reports_controller.rb Datei anzeigen

@@ -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

+ 36
- 0
app/views/admin/reports/show.html.haml Datei anzeigen

@@ -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'

+ 9
- 1
config/routes.rb Datei anzeigen

@@ -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


Laden…
Abbrechen
Speichern