Browse Source

Report processing improvements (#2349)

* Expose media attachments on reported statuses directly

* Comment out unused bulk report checkbox. Add title to report comment for viewing full comment. Add 'contents' column, with icons and numerical indicators to show the number of referenced statuses and media attachments in the report

* Link account name on authorize_follow card back to account

* Add localisation string for report_contents

* Show new admin accounts card partial on report view. Apply simple_format to report comment so newlines are preserved.

* Add new admin accounts card partial, for display quick useful admin stats (e.g. report history, moderation status).

* Fix localized variable
master
Effy Elden 7 years ago
committed by Eugen
parent
commit
1801a36414
6 changed files with 46 additions and 6 deletions
  1. +8
    -0
      app/models/report.rb
  2. +16
    -0
      app/views/admin/accounts/_card.html.haml
  3. +15
    -3
      app/views/admin/reports/index.html.haml
  4. +3
    -1
      app/views/admin/reports/show.html.haml
  5. +3
    -2
      app/views/authorize_follow/_card.html.haml
  6. +1
    -0
      config/locales/en.yml

+ 8
- 0
app/models/report.rb View File

@ -11,4 +11,12 @@ class Report < ApplicationRecord
def statuses def statuses
Status.where(id: status_ids) Status.where(id: status_ids)
end end
def media_attachments
media_attachments = []
statuses.each do |s|
media_attachments.concat s.media_attachments
end
media_attachments
end
end end

+ 16
- 0
app/views/admin/accounts/_card.html.haml View File

@ -0,0 +1,16 @@
%table.table
%tbody
%tr
%td= t('admin.accounts.show.created_reports')
%td= link_to pluralize(account.reports.count, t('admin.accounts.show.report')), admin_reports_path(account_id: account.id)
%tr
%td= t('admin.accounts.show.targeted_reports')
%td= link_to pluralize(account.targeted_reports.count, t('admin.accounts.show.report')), admin_reports_path(target_account_id: account.id)
- if account.silenced? or account.suspended?
%tr
%td= t('admin.accounts.moderation.title')
%td
- if account.silenced?
%p= t('admin.moderation.silenced')
- if account.suspended?
%p= t('admin.moderation.suspended')

+ 15
- 3
app/views/admin/reports/index.html.haml View File

@ -13,20 +13,32 @@
%table.table %table.table
%thead %thead
%tr %tr
%th
-# %th
%th= t('admin.reports.id') %th= t('admin.reports.id')
%th= t('admin.reports.target') %th= t('admin.reports.target')
%th= t('admin.reports.reported_by') %th= t('admin.reports.reported_by')
%th= t('admin.reports.comment.label') %th= t('admin.reports.comment.label')
%th= t('admin.reports.report_contents')
%th %th
%tbody %tbody
- @reports.each do |report| - @reports.each do |report|
%tr %tr
%td= check_box_tag 'select', report.id
-# %td= check_box_tag 'select', report.id
%td= "##{report.id}" %td= "##{report.id}"
%td= link_to report.target_account.acct, admin_account_path(report.target_account.id) %td= link_to report.target_account.acct, admin_account_path(report.target_account.id)
%td= link_to report.account.acct, admin_account_path(report.account.id) %td= link_to report.account.acct, admin_account_path(report.account.id)
%td= truncate(report.comment, length: 30, separator: ' ')
%td
%span{title: report.comment}
= truncate(report.comment, length: 30, separator: ' ')
%td
- unless report.statuses.empty?
%span{title: t('admin.accounts.statuses')}
= fa_icon('comment')
= report.statuses.count
- unless report.media_attachments.empty?
%span{title: t('admin.accounts.media_attachments')}
= fa_icon('camera')
= report.media_attachments.count
%td= table_link_to 'circle', t('admin.reports.view'), admin_report_path(report) %td= table_link_to 'circle', t('admin.reports.view'), admin_report_path(report)
= paginate @reports = paginate @reports

+ 3
- 1
app/views/admin/reports/show.html.haml View File

@ -5,14 +5,16 @@
.report-accounts__item .report-accounts__item
%strong= t('admin.reports.reported_account') %strong= t('admin.reports.reported_account')
= render partial: 'authorize_follow/card', locals: { account: @report.target_account } = render partial: 'authorize_follow/card', locals: { account: @report.target_account }
= render partial: 'admin/accounts/card', locals: { account: @report.target_account }
.report-accounts__item .report-accounts__item
%strong= t('admin.reports.reported_by') %strong= t('admin.reports.reported_by')
= render partial: 'authorize_follow/card', locals: { account: @report.account } = render partial: 'authorize_follow/card', locals: { account: @report.account }
= render partial: 'admin/accounts/card', locals: { account: @report.account }
%p %p
%strong= t('admin.reports.comment.label') %strong= t('admin.reports.comment.label')
\: \:
= @report.comment.presence || t('admin.reports.comment.none')
= simple_format(@report.comment.presence || t('admin.reports.comment.none'))
- unless @report.statuses.empty? - unless @report.statuses.empty?
%hr/ %hr/

+ 3
- 2
app/views/authorize_follow/_card.html.haml View File

@ -4,8 +4,9 @@
= image_tag account.avatar.url(:original), alt: '', width: 48, height: 48, class: 'avatar' = image_tag account.avatar.url(:original), alt: '', width: 48, height: 48, class: 'avatar'
%span.display-name %span.display-name
%strong.emojify= display_name(account)
%span= "@#{account.acct}"
= link_to TagManager.instance.url_for(account), class: 'detailed-status__display-name p-author h-card', target: '_blank', rel: 'noopener' do
%strong.emojify= display_name(account)
%span= "@#{account.acct}"
- if account.note? - if account.note?
.account__header__content.emojify= Formatter.instance.simplified_format(account) .account__header__content.emojify= Formatter.instance.simplified_format(account)

+ 1
- 0
config/locales/en.yml View File

@ -147,6 +147,7 @@ en:
report: 'Report #%{id}' report: 'Report #%{id}'
reported_account: Reported account reported_account: Reported account
reported_by: Reported by reported_by: Reported by
report_contents: Contents
resolved: Resolved resolved: Resolved
silence_account: Silence account silence_account: Silence account
status: Status status: Status

Loading…
Cancel
Save