* Add moderation warnings Replace individual routes for disabling, silencing, and suspending a user, as well as the report update route, with a unified account action controller that allows you to select an action (none, disable, silence, suspend) as well as whether it should generate an e-mail notification with optional custom text. That notification, with the optional custom text, is saved as a warning. Additionally, there are warning presets you can configure to save time when performing the above. * Use Account#local_username_and_domain
		
			
				
	
	
		
			123 lines
		
	
	
	
		
			6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
	
		
			6 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.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'
 | 
						|
    %div{ style: 'float: left' }
 | 
						|
      = 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'
 | 
						|
 | 
						|
%hr.spacer
 | 
						|
 | 
						|
.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', pluralize(@report.target_account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.target_account.id)
 | 
						|
        %td= table_link_to 'file', pluralize(@report.target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.target_account.id)
 | 
						|
      %tr
 | 
						|
        %th= t('admin.reports.reported_by')
 | 
						|
        - if @report.account.local?
 | 
						|
          %td= admin_account_link_to @report.account
 | 
						|
          %td= table_link_to 'flag', pluralize(@report.account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.account.id)
 | 
						|
          %td= table_link_to 'file', pluralize(@report.account.targeted_moderation_notes.count, t('admin.reports.account.note')), 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
 | 
						|
 | 
						|
.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
 |