Add domain block notes (#11515)

* Add database columns for adding notes to domain blocks/restrctions

* Add admin UI to set private and public comments when blocking a domain

* Add text for private and public comments on domain blocks

* Show domain block comments in admin UI

* Add comments to the domain block undo page

* Make UnblockDomainService more robust regarding upgraded domain blocks

* Allow editing domain blocks

* Rename button from “undo domain block” to “view domain block” in account admin UI

* Change test to unsilence silenced users from upgraded blocks
This commit is contained in:
ThibG
2019-08-07 20:20:23 +02:00
committed by Eugen Rochko
parent 94c54997cf
commit bced70469a
17 changed files with 138 additions and 34 deletions

View File

@ -174,7 +174,7 @@
- unless @account.local?
- if DomainBlock.where(domain: @account.domain).exists?
= link_to t('admin.domain_blocks.undo'), admin_instance_path(@account.domain), class: 'button'
= link_to t('admin.domain_blocks.view'), admin_instance_path(@account.domain), class: 'button'
- else
= link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @account.domain), class: 'button button--destructive'

View File

@ -0,0 +1,30 @@
- content_for :header_tags do
= javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
- content_for :page_title do
= t('admin.domain_blocks.edit')
= simple_form_for @domain_block, url: admin_domain_block_path(@domain_block), method: :put do |f|
= render 'shared/error_messages', object: @domain_block
.fields-row
.fields-row__column.fields-row__column-6.fields-group
= f.input :domain, wrapper: :with_label, label: t('admin.domain_blocks.domain'), hint: t('admin.domain_blocks.new.hint'), required: true, readonly: true, disabled: true
.fields-row__column.fields-row__column-6.fields-group
= f.input :severity, collection: DomainBlock.severities.keys, wrapper: :with_label, include_blank: false, label_method: lambda { |type| t("admin.domain_blocks.new.severity.#{type}") }, hint: t('admin.domain_blocks.new.severity.desc_html')
.fields-group
= f.input :reject_media, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_media'), hint: I18n.t('admin.domain_blocks.reject_media_hint')
.fields-group
= f.input :reject_reports, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_reports'), hint: I18n.t('admin.domain_blocks.reject_reports_hint')
.field-group
= f.input :private_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.private_comment'), hint: t('admin.domain_blocks.private_comment_hint'), rows: 6
.field-group
= f.input :public_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.public_comment'), hint: t('admin.domain_blocks.public_comment_hint'), rows: 6
.actions
= f.button :button, t('generic.save_changes'), type: :submit

View File

@ -20,5 +20,11 @@
.fields-group
= f.input :reject_reports, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_reports'), hint: I18n.t('admin.domain_blocks.reject_reports_hint')
.field-group
= f.input :private_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.private_comment'), hint: t('admin.domain_blocks.private_comment_hint'), rows: 6
.field-group
= f.input :public_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.public_comment'), hint: t('admin.domain_blocks.public_comment_hint'), rows: 6
.actions
= f.button :button, t('.create'), type: :submit

View File

@ -1,6 +1,18 @@
- content_for :page_title do
= t('admin.domain_blocks.show.title', domain: @domain_block.domain)
- if @domain_block.private_comment.present?
.speech-bubble
.speech-bubble__bubble
= simple_format(h(@domain_block.private_comment))
.speech-bubble__owner= t 'admin.instances.private_comment'
- if @domain_block.public_comment.present?
.speech-bubble
.speech-bubble__bubble
= simple_format(h(@domain_block.public_comment))
.speech-bubble__owner= t 'admin.instances.public_comment'
= simple_form_for @domain_block, url: admin_domain_block_path(@domain_block), method: :delete do |f|
- unless (@domain_block.noop?)

View File

@ -31,6 +31,18 @@
= fa_icon 'times'
.dashboard__counters__label= t 'admin.instances.delivery_available'
- if @private_comment.present?
.speech-bubble
.speech-bubble__bubble
= simple_format(h(@private_comment))
.speech-bubble__owner= t 'admin.instances.private_comment'
- if @public_comment.present?
.speech-bubble
.speech-bubble__bubble
= simple_format(h(@public_comment))
.speech-bubble__owner= t 'admin.instances.public_comment'
%hr.spacer/
%div{ style: 'overflow: hidden' }
@ -41,6 +53,7 @@
- if @domain_allow
= link_to t('admin.domain_allows.undo'), admin_domain_allow_path(@domain_allow), class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure'), method: :delete }
- elsif @domain_block
= link_to t('admin.domain_blocks.edit'), edit_admin_domain_block_path(@domain_block), class: 'button'
= link_to t('admin.domain_blocks.undo'), admin_domain_block_path(@domain_block), class: 'button'
- else
= link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @instance.domain), class: 'button'