* 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
This commit is contained in:
parent
36eac8ba90
commit
e85cffb236
17 changed files with 290 additions and 25 deletions
11
app/views/admin/report_notes/_report_note.html.haml
Normal file
11
app/views/admin/report_notes/_report_note.html.haml
Normal file
|
@ -0,0 +1,11 @@
|
|||
%tr
|
||||
%td
|
||||
%p
|
||||
%strong= report_note.account.acct
|
||||
on
|
||||
%time.formatted{ datetime: report_note.created_at.iso8601, title: l(report_note.created_at) }
|
||||
= l report_note.created_at
|
||||
= table_link_to 'trash', t('admin.reports.notes.delete'), admin_report_note_path(report_note), method: :delete if can?(:destroy, report_note)
|
||||
%br/
|
||||
%br/
|
||||
= simple_format(h(report_note.content))
|
|
@ -17,5 +17,10 @@
|
|||
%span{ title: t('admin.accounts.media_attachments') }
|
||||
= fa_icon('camera')
|
||||
= report.media_attachments.count
|
||||
%td
|
||||
- if report.assigned_account.nil?
|
||||
\-
|
||||
- else
|
||||
= link_to report.assigned_account.acct, admin_account_path(report.assigned_account.id)
|
||||
%td
|
||||
= table_link_to 'circle', t('admin.reports.view'), admin_report_path(report)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
%th= t('admin.reports.reported_by')
|
||||
%th= t('admin.reports.comment.label')
|
||||
%th= t('admin.reports.report_contents')
|
||||
%th= t('admin.reports.assigned')
|
||||
%th
|
||||
%tbody
|
||||
= render @reports
|
||||
|
|
|
@ -4,24 +4,68 @@
|
|||
- 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
|
||||
%strong= t('admin.reports.reported_account')
|
||||
%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
|
||||
%strong= t('admin.reports.reported_by')
|
||||
%h3= t('admin.reports.reported_by')
|
||||
= render 'authorize_follows/card', account: @report.account, admin: true
|
||||
= render 'admin/accounts/card', account: @report.account
|
||||
|
||||
%p
|
||||
%strong= t('admin.reports.comment.label')
|
||||
\:
|
||||
= simple_format(@report.comment.presence || t('admin.reports.comment.none'))
|
||||
%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
|
||||
|
@ -46,14 +90,20 @@
|
|||
|
||||
%hr/
|
||||
|
||||
- if !@report.action_taken?
|
||||
%div{ style: 'overflow: hidden' }
|
||||
%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'
|
||||
- elsif !@report.action_taken_by_account.nil?
|
||||
%p
|
||||
%strong #{t('admin.reports.action_taken_by')}:
|
||||
= @report.action_taken_by_account.acct
|
||||
%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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue