From 1801a36414ee79bd51aad23fc5ff6a90049e7270 Mon Sep 17 00:00:00 2001 From: Effy Elden Date: Mon, 24 Apr 2017 08:44:37 +1000 Subject: [PATCH] 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 --- app/models/report.rb | 8 ++++++++ app/views/admin/accounts/_card.html.haml | 16 ++++++++++++++++ app/views/admin/reports/index.html.haml | 18 +++++++++++++++--- app/views/admin/reports/show.html.haml | 4 +++- app/views/authorize_follow/_card.html.haml | 5 +++-- config/locales/en.yml | 1 + 6 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 app/views/admin/accounts/_card.html.haml diff --git a/app/models/report.rb b/app/models/report.rb index 54157ed8c7..c7d8877458 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -11,4 +11,12 @@ class Report < ApplicationRecord def statuses Status.where(id: status_ids) end + + def media_attachments + media_attachments = [] + statuses.each do |s| + media_attachments.concat s.media_attachments + end + media_attachments + end end diff --git a/app/views/admin/accounts/_card.html.haml b/app/views/admin/accounts/_card.html.haml new file mode 100644 index 0000000000..434fb38f88 --- /dev/null +++ b/app/views/admin/accounts/_card.html.haml @@ -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') diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml index 7309c719a7..7db9af6d16 100644 --- a/app/views/admin/reports/index.html.haml +++ b/app/views/admin/reports/index.html.haml @@ -13,20 +13,32 @@ %table.table %thead %tr - %th + -# %th %th= t('admin.reports.id') %th= t('admin.reports.target') %th= t('admin.reports.reported_by') %th= t('admin.reports.comment.label') + %th= t('admin.reports.report_contents') %th %tbody - @reports.each do |report| %tr - %td= check_box_tag 'select', report.id + -# %td= check_box_tag 'select', report.id %td= "##{report.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= 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) = paginate @reports diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index aa144170d8..3868d4fada 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -5,14 +5,16 @@ .report-accounts__item %strong= t('admin.reports.reported_account') = render partial: 'authorize_follow/card', locals: { account: @report.target_account } + = render partial: 'admin/accounts/card', locals: { account: @report.target_account } .report-accounts__item %strong= t('admin.reports.reported_by') = render partial: 'authorize_follow/card', locals: { account: @report.account } + = render partial: 'admin/accounts/card', locals: { account: @report.account } %p %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? %hr/ diff --git a/app/views/authorize_follow/_card.html.haml b/app/views/authorize_follow/_card.html.haml index 16af9220e5..ee76f628d0 100644 --- a/app/views/authorize_follow/_card.html.haml +++ b/app/views/authorize_follow/_card.html.haml @@ -4,8 +4,9 @@ = image_tag account.avatar.url(:original), alt: '', width: 48, height: 48, class: 'avatar' %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? .account__header__content.emojify= Formatter.instance.simplified_format(account) diff --git a/config/locales/en.yml b/config/locales/en.yml index dda2acc135..aa5cc096f2 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -147,6 +147,7 @@ en: report: 'Report #%{id}' reported_account: Reported account reported_by: Reported by + report_contents: Contents resolved: Resolved silence_account: Silence account status: Status