Implement Instance Moderation Notes (#31529)

This commit is contained in:
Emelia Smith 2025-06-25 10:15:44 +02:00 committed by GitHub
parent 0f9f27972d
commit 72f2f35bfb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 295 additions and 15 deletions

View file

@ -6,7 +6,7 @@
= date_range(@time_period)
- if @instance.persisted?
= render 'dashboard', instance_domain: @instance.domain, period_end_at: @time_period.last, period_start_at: @time_period.first
= render 'admin/instances/dashboard', instance_domain: @instance.domain, period_end_at: @time_period.last, period_start_at: @time_period.first
- else
%p
= t('admin.instances.unknown_instance')
@ -55,6 +55,24 @@
= render partial: 'admin/action_logs/action_log', collection: @action_logs
= link_to t('admin.instances.audit_log.view_all'), admin_action_logs_path(target_domain: @instance.domain), class: 'button'
%hr.spacer/
- if @instance.domain.present?
%h3#instance-notes= t('admin.instances.moderation_notes.title')
%p= t('admin.instances.moderation_notes.description_html')
.report-notes
= render partial: 'admin/report_notes/report_note', collection: @instance_moderation_notes
= simple_form_for @instance_moderation_note, url: admin_instance_moderation_notes_path(instance_id: @instance.domain) do |form|
= render 'shared/error_messages', object: @instance_moderation_note
.field-group
= form.input :content, input_html: { placeholder: t('admin.instances.moderation_notes.placeholder'), maxlength: InstanceModerationNote::CONTENT_SIZE_LIMIT, rows: 6, autofocus: @instance_moderation_note.errors.any? }
.actions
= form.button :button, t('admin.instances.moderation_notes.create'), type: :submit
- if @instance.persisted?
%hr.spacer/
%h3= t('admin.instances.availability.title')

View file

@ -1,11 +1,12 @@
.report-notes__item
.report-notes__item{ id: dom_id(report_note) }
= image_tag report_note.account.avatar.url, class: 'report-notes__item__avatar'
.report-notes__item__header
%span.username
= link_to report_note.account.username, admin_account_path(report_note.account_id)
%time.relative-formatted{ datetime: report_note.created_at.iso8601, title: report_note.created_at }
= l report_note.created_at.to_date
%a.timestamp{ href: "##{dom_id(report_note)}" }
%time.relative-formatted{ datetime: report_note.created_at.iso8601, title: report_note.created_at }
= l report_note.created_at.to_date
.report-notes__item__content
= linkify(report_note.content)
@ -14,5 +15,7 @@
.report-notes__item__actions
- if report_note.is_a?(AccountModerationNote)
= table_link_to 'delete', t('admin.reports.notes.delete'), admin_account_moderation_note_path(report_note), method: :delete
- elsif report_note.is_a?(InstanceModerationNote)
= table_link_to 'delete', t('admin.reports.notes.delete'), admin_instance_moderation_note_path(instance_id: report_note.domain, id: report_note.id), method: :delete
- else
= table_link_to 'delete', t('admin.reports.notes.delete'), admin_report_note_path(report_note), method: :delete