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:
		@@ -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'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										30
									
								
								app/views/admin/domain_blocks/edit.html.haml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								app/views/admin/domain_blocks/edit.html.haml
									
									
									
									
									
										Normal 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
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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?)
 | 
			
		||||
 
 | 
			
		||||
@@ -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'
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user