mirror of
https://github.com/mastodon/mastodon.git
synced 2024-08-20 21:08:15 -07:00
e85cffb236
* Implement Assignment of Reports (#6967) * Change translation of admin.report.comment.label to "Report Comment" for clarity As we'll soon add the ability for reports to have comments on them, this clarification makes sense. * Implement notes for Reports This enables moderators to leave comments about a report whilst they work on it * Fix display of report moderation notes * Allow reports to be reopened / marked as unresolved * Redirect to reports listing upon resolution of report * Implement "resolve with note" functionality * Add inverse relationship for report notes * Remove additional database querying when loading report notes * Fix tests for reports * Fix localisations for report notes / reports
109 lines
4.9 KiB
Text
109 lines
4.9 KiB
Text
- 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)
|
|
|
|
%div{ style: 'overflow: hidden; margin-bottom: 20px' }
|
|
- if !@report.action_taken?
|
|
%div{ style: 'float: right' }
|
|
= link_to t('admin.reports.silence_account'), admin_report_path(@report, outcome: 'silence'), method: :put, class: 'button'
|
|
= link_to t('admin.reports.suspend_account'), admin_report_path(@report, outcome: 'suspend'), method: :put, class: 'button'
|
|
%div{ style: 'float: left' }
|
|
= link_to t('admin.reports.mark_as_resolved'), admin_report_path(@report, outcome: 'resolve'), method: :put, class: 'button'
|
|
- else
|
|
= link_to t('admin.reports.mark_as_unresolved'), admin_report_path(@report, outcome: 'reopen'), method: :put, class: 'button'
|
|
|
|
.table-wrapper
|
|
%table.table.inline-table
|
|
%tbody
|
|
%tr
|
|
%th= t('admin.reports.updated_at')
|
|
%td{colspan: 2}
|
|
%time.formatted{ datetime: @report.updated_at.iso8601 }
|
|
%tr
|
|
%th= t('admin.reports.status')
|
|
%td{colspan: 2}
|
|
- if @report.action_taken?
|
|
= t('admin.reports.resolved')
|
|
= table_link_to 'envelope-open', t('admin.reports.reopen'), admin_report_path(@report, outcome: 'reopen'), method: :put
|
|
- else
|
|
= t('admin.reports.unresolved')
|
|
- if !@report.action_taken_by_account.nil?
|
|
%tr
|
|
%th= t('admin.reports.action_taken_by')
|
|
%td= @report.action_taken_by_account.acct
|
|
- else
|
|
%tr
|
|
%th= t('admin.reports.assigned')
|
|
%td
|
|
- if @report.assigned_account.nil?
|
|
\-
|
|
- else
|
|
= link_to @report.assigned_account.acct, admin_account_path(@report.assigned_account.id)
|
|
%td{style: "text-align: right"}
|
|
- if @report.assigned_account != current_user.account
|
|
= table_link_to 'user', t('admin.reports.assign_to_self'), admin_report_path(@report, outcome: 'assign_to_self'), method: :put
|
|
- if !@report.assigned_account.nil?
|
|
= table_link_to 'trash', t('admin.reports.unassign'), admin_report_path(@report, outcome: 'unassign'), method: :put
|
|
|
|
.report-accounts
|
|
.report-accounts__item
|
|
%h3= t('admin.reports.reported_account')
|
|
= render 'authorize_follows/card', account: @report.target_account, admin: true
|
|
= render 'admin/accounts/card', account: @report.target_account
|
|
.report-accounts__item
|
|
%h3= t('admin.reports.reported_by')
|
|
= render 'authorize_follows/card', account: @report.account, admin: true
|
|
= render 'admin/accounts/card', account: @report.account
|
|
|
|
%h3= t('admin.reports.comment.label')
|
|
|
|
= simple_format(@report.comment.presence || t('admin.reports.comment.none'))
|
|
|
|
- unless @report.statuses.empty?
|
|
%hr/
|
|
|
|
%h3= t('admin.reports.statuses')
|
|
|
|
= form_for(@form, url: admin_report_reported_statuses_path(@report.id)) do |f|
|
|
.batch-form-box
|
|
.batch-checkbox-all
|
|
= check_box_tag :batch_checkbox_all, nil, false
|
|
= f.select :action, Form::StatusBatch::ACTION_TYPE.map{|action| [t("admin.statuses.batch.#{action}"), action]}
|
|
= f.submit t('admin.statuses.execute'), data: { confirm: t('admin.reports.are_you_sure') }, class: 'button'
|
|
.media-spoiler-toggle-buttons
|
|
.media-spoiler-show-button.button= t('admin.statuses.media.show')
|
|
.media-spoiler-hide-button.button= t('admin.statuses.media.hide')
|
|
- @report.statuses.each do |status|
|
|
.report-status{ data: { id: status.id } }
|
|
.batch-checkbox
|
|
= f.check_box :status_ids, { multiple: true, include_hidden: false }, status.id
|
|
.activity-stream.activity-stream-headless
|
|
.entry= render 'stream_entries/simple_status', status: status
|
|
.report-status__actions
|
|
- unless status.media_attachments.empty?
|
|
= link_to admin_report_reported_status_path(@report, status, status: { sensitive: !status.sensitive }), method: :put, class: 'icon-button nsfw-button', title: t("admin.reports.nsfw.#{!status.sensitive}") do
|
|
= fa_icon status.sensitive? ? 'eye' : 'eye-slash'
|
|
= link_to admin_report_reported_status_path(@report, status), method: :delete, class: 'icon-button trash-button', title: t('admin.reports.delete'), data: { confirm: t('admin.reports.are_you_sure') }, remote: true do
|
|
= fa_icon 'trash'
|
|
|
|
%hr/
|
|
|
|
%h3= t('admin.reports.notes.label')
|
|
|
|
- if @report_notes.length > 0
|
|
.table-wrapper
|
|
%table.table
|
|
%thead
|
|
%tr
|
|
%th
|
|
%tbody
|
|
= render @report_notes
|
|
|
|
= simple_form_for @report_note, url: admin_report_notes_path do |f|
|
|
= render 'shared/error_messages', object: @report_note
|
|
= f.input :content
|
|
= f.hidden_field :report_id
|
|
= f.button :button, t('admin.reports.notes.create'), type: :submit
|
|
= f.button :button, t('admin.reports.notes.create_and_resolve'), type: :submit, name: :create_and_resolve
|