34aa5c7cb2
* Move resolved button to the heading This is one of the commits on improving overall reports page structure. It changes where resolved button is located, moving it to the heading, right next to the "Report #n" header, so-called "hot-place" to look at. To accomplish this we have to declare one more content variable, change admin dashboard template to respect it and CSS files for minor styling, so buttons are inlined and centrally aligned according to the heading. * Move actions buttons below the report table I believe that actions to react on report should not be located at the top of the page, instead they should be either after the table or reporter's comment. This is just a logical sign that you should not react to the report without reading all the details first.
128 lines
6.2 KiB
Plaintext
128 lines
6.2 KiB
Plaintext
- content_for :header_tags do
|
|
= javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
|
|
|
|
- content_for :page_title do
|
|
= t('admin.reports.report', id: @report.id)
|
|
|
|
- content_for :page_heading_actions do
|
|
- if @report.unresolved?
|
|
= link_to t('admin.reports.mark_as_resolved'), resolve_admin_report_path(@report), method: :post, class: 'button'
|
|
- else
|
|
= link_to t('admin.reports.mark_as_unresolved'), reopen_admin_report_path(@report), method: :post, class: 'button'
|
|
|
|
.table-wrapper
|
|
%table.table.inline-table
|
|
%tbody
|
|
%tr
|
|
%th= t('admin.reports.reported_account')
|
|
%td= admin_account_link_to @report.target_account
|
|
%td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.target_account.targeted_reports.count), admin_reports_path(target_account_id: @report.target_account.id)
|
|
%td= table_link_to 'file', t('admin.reports.account.notes', count: @report.target_account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.target_account.id)
|
|
%tr
|
|
%th= t('admin.reports.reported_by')
|
|
- if @report.account.instance_actor?
|
|
%td{ colspan: 3 }= site_hostname
|
|
- elsif @report.account.local?
|
|
%td= admin_account_link_to @report.account
|
|
%td= table_link_to 'flag', t('admin.reports.account.reports', count: @report.account.targeted_reports.count), admin_reports_path(target_account_id: @report.account.id)
|
|
%td= table_link_to 'file', t('admin.reports.account.notes', count: @report.account.targeted_moderation_notes.count), admin_reports_path(target_account_id: @report.account.id)
|
|
- else
|
|
%td{ colspan: 3 }= @report.account.domain
|
|
%tr
|
|
%th= t('admin.reports.created_at')
|
|
%td{ colspan: 3 }
|
|
%time.formatted{ datetime: @report.created_at.iso8601 }
|
|
%tr
|
|
%th= t('admin.reports.updated_at')
|
|
%td{ colspan: 3 }
|
|
%time.formatted{ datetime: @report.updated_at.iso8601 }
|
|
%tr
|
|
%th= t('admin.reports.status')
|
|
%td
|
|
- if @report.action_taken?
|
|
= t('admin.reports.resolved')
|
|
- else
|
|
= t('admin.reports.unresolved')
|
|
%td{ colspan: 2 }
|
|
- if @report.action_taken?
|
|
= table_link_to 'envelope-open', t('admin.reports.reopen'), admin_report_path(@report, outcome: 'reopen'), method: :put
|
|
- if !@report.action_taken_by_account.nil?
|
|
%tr
|
|
%th= t('admin.reports.action_taken_by')
|
|
%td{ colspan: 3 }
|
|
= admin_account_link_to @report.action_taken_by_account
|
|
- else
|
|
%tr
|
|
%th= t('admin.reports.assigned')
|
|
%td
|
|
- if @report.assigned_account.nil?
|
|
\-
|
|
- else
|
|
= admin_account_link_to @report.assigned_account
|
|
%td
|
|
- if @report.assigned_account != current_user.account
|
|
= table_link_to 'user', t('admin.reports.assign_to_self'), assign_to_self_admin_report_path(@report), method: :post
|
|
%td
|
|
- if !@report.assigned_account.nil?
|
|
= table_link_to 'trash', t('admin.reports.unassign'), unassign_admin_report_path(@report), method: :post
|
|
|
|
%hr.spacer
|
|
|
|
%div{ style: 'overflow: hidden; margin-bottom: 20px; clear: both' }
|
|
- if @report.unresolved?
|
|
%div{ style: 'float: right' }
|
|
- if @report.target_account.local?
|
|
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button'
|
|
= link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive'
|
|
= link_to t('admin.accounts.silence'), new_admin_account_action_path(@report.target_account_id, type: 'silence', report_id: @report.id), class: 'button button--destructive'
|
|
= link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@report.target_account_id, type: 'suspend', report_id: @report.id), class: 'button button--destructive'
|
|
|
|
%hr.spacer
|
|
|
|
.speech-bubble
|
|
.speech-bubble__bubble= simple_format(@report.comment.presence || t('admin.reports.comment.none'))
|
|
.speech-bubble__owner
|
|
- if @report.account.local?
|
|
= admin_account_link_to @report.account
|
|
- else
|
|
= @report.account.domain
|
|
%br/
|
|
%time.formatted{ datetime: @report.created_at.iso8601 }
|
|
|
|
- unless @report.statuses.empty?
|
|
%hr.spacer/
|
|
|
|
= form_for(@form, url: admin_report_reported_statuses_path(@report.id)) do |f|
|
|
.batch-table
|
|
.batch-table__toolbar
|
|
%label.batch-table__toolbar__select.batch-checkbox-all
|
|
= check_box_tag :batch_checkbox_all, nil, false
|
|
.batch-table__toolbar__actions
|
|
= f.button safe_join([fa_icon('eye-slash'), t('admin.statuses.batch.nsfw_on')]), name: :nsfw_on, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
|
|
= f.button safe_join([fa_icon('eye'), t('admin.statuses.batch.nsfw_off')]), name: :nsfw_off, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
|
|
= f.button safe_join([fa_icon('trash'), t('admin.statuses.batch.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
|
|
.batch-table__body
|
|
= render partial: 'admin/reports/status', collection: @report.statuses, locals: { f: f }
|
|
|
|
%hr.spacer/
|
|
|
|
- @report_notes.each do |item|
|
|
- if item.is_a?(Admin::ActionLog)
|
|
= render partial: 'action_log', locals: { action_log: item }
|
|
- else
|
|
= render item
|
|
|
|
= simple_form_for @report_note, url: admin_report_notes_path do |f|
|
|
= render 'shared/error_messages', object: @report_note
|
|
= f.input :report_id, as: :hidden
|
|
|
|
.field-group
|
|
= f.input :content, placeholder: t('admin.reports.notes.placeholder'), rows: 6
|
|
|
|
.actions
|
|
- if @report.unresolved?
|
|
= f.button :button, t('admin.reports.notes.create_and_resolve'), name: :create_and_resolve, type: :submit
|
|
- else
|
|
= f.button :button, t('admin.reports.notes.create_and_unresolve'), name: :create_and_unresolve, type: :submit
|
|
= f.button :button, t('admin.reports.notes.create'), type: :submit
|