about summary refs log tree commit diff
path: root/app/views
diff options
context:
space:
mode:
authorTakeshi Umeda <noel.yoshiba@gmail.com>2021-05-06 06:39:02 +0900
committerGitHub <noreply@github.com>2021-05-05 23:39:02 +0200
commit7cb34b32f8bc925b56c79dbcf053671f93f2eb42 (patch)
treeb05d123350c4af203a6009418b1bfc7056820b27 /app/views
parentd9ae3db8d5543cf0b7fa44186c191c9bb2472d23 (diff)
Add management of delivery availability in Federation settings (#15771)
* Add management of delivery availavility in Federation settings

* fix translate

* Remove useless object creation

* Fix DeepSource issue

* Add shortcut for all

* Fix DeepSource(skipcq)

* Change 'remove' to 'clear'

* Fix style

* Change class method name (exhausted_deliveries_key_by)
Diffstat (limited to 'app/views')
-rw-r--r--app/views/admin/instances/_exhausted_deliveries_days.haml2
-rw-r--r--app/views/admin/instances/_instance.html.haml8
-rw-r--r--app/views/admin/instances/index.html.haml18
-rw-r--r--app/views/admin/instances/show.html.haml25
4 files changed, 53 insertions, 0 deletions
diff --git a/app/views/admin/instances/_exhausted_deliveries_days.haml b/app/views/admin/instances/_exhausted_deliveries_days.haml
new file mode 100644
index 000000000..e581f542d
--- /dev/null
+++ b/app/views/admin/instances/_exhausted_deliveries_days.haml
@@ -0,0 +1,2 @@
+%li.negative-hint
+  = l(exhausted_deliveries_days)
diff --git a/app/views/admin/instances/_instance.html.haml b/app/views/admin/instances/_instance.html.haml
index 188d0d984..990cf9ec8 100644
--- a/app/views/admin/instances/_instance.html.haml
+++ b/app/views/admin/instances/_instance.html.haml
@@ -22,4 +22,12 @@
           = t('admin.accounts.whitelisted')
         - else
           = t('admin.accounts.no_limits_imposed')
+        - if instance.failure_days
+          = ' / '
+          %span.negative-hint
+            = t('admin.instances.delivery.warning_message', count: instance.failure_days)
+        - if instance.unavailable_domain
+          = ' / '
+          %span.negative-hint
+            = t('admin.instances.delivery.unavailable_message')
     .trends__item__current{ title: t('admin.instances.known_accounts', count: instance.accounts_count) }= number_to_human instance.accounts_count, strip_insignificant_zeros: true
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index 7c7958786..797948d94 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -16,6 +16,24 @@
       - unless whitelist_mode?
         %li= filter_link_to t('admin.instances.moderation.limited'), limited: '1'
 
+  .filter-subset
+    %strong= t('admin.instances.delivery.title')
+    %ul
+      %li= filter_link_to t('admin.instances.delivery.all'), warning: nil, unavailable: nil
+      %li= filter_link_to t('admin.instances.delivery.warning'), warning: '1', unavailable: nil
+      %li= filter_link_to t('admin.instances.delivery.unavailable'), warning: nil, unavailable: '1'
+
+  .back-link
+    = link_to admin_instances_path() do
+      %i.fa.fa-chevron-left.fa-fw
+      = t('admin.instances.back_to_all')
+    = link_to admin_instances_path(limited: 1) do
+      %i.fa.fa-chevron-left.fa-fw
+      = t('admin.instances.back_to_limited')
+    = link_to admin_instances_path(warning: 1) do
+      %i.fa.fa-chevron-left.fa-fw
+      = t('admin.instances.back_to_warning')
+
 - unless whitelist_mode?
   = form_tag admin_instances_url, method: 'GET', class: 'simple_form' do
     .fields-group
diff --git a/app/views/admin/instances/show.html.haml b/app/views/admin/instances/show.html.haml
index 0b9382771..462529338 100644
--- a/app/views/admin/instances/show.html.haml
+++ b/app/views/admin/instances/show.html.haml
@@ -1,6 +1,18 @@
 - content_for :page_title do
   = @instance.domain
 
+.filters
+  .back-link
+    = link_to admin_instances_path() do
+      %i.fa.fa-chevron-left.fa-fw
+      = t('admin.instances.back_to_all')
+    = link_to admin_instances_path(limited: 1) do
+      %i.fa.fa-chevron-left.fa-fw
+      = t('admin.instances.back_to_limited')
+    = link_to admin_instances_path(warning: 1) do
+      %i.fa.fa-chevron-left.fa-fw
+      = t('admin.instances.back_to_warning')
+
 .dashboard__counters
   %div
     = link_to admin_accounts_path(remote: '1', by_domain: @instance.domain) do
@@ -48,6 +60,13 @@
       = simple_format(h(@instance.public_comment))
     .speech-bubble__owner= t 'admin.instances.public_comment'
 
+- unless @exhausted_deliveries_days.empty?
+  %h4= t 'admin.instances.delivery_error_days'
+  %ul
+    = render partial: 'exhausted_deliveries_days', collection: @exhausted_deliveries_days
+  %p.hint
+    = t 'admin.instances.delivery_error_hint', count: DeliveryFailureTracker::FAILURE_DAYS_THRESHOLD
+
 %hr.spacer/
 
 %div.action-buttons
@@ -59,3 +78,9 @@
       = link_to t('admin.domain_blocks.undo'), admin_domain_block_path(@instance.domain_block), class: 'button'
     - else
       = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @instance.domain), class: 'button'
+    - if @instance.delivery_failure_tracker.available?
+      - unless @exhausted_deliveries_days.empty?
+        = link_to t('admin.instances.delivery.clear'), clear_delivery_errors_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }, class: 'button'
+      = link_to t('admin.instances.delivery.stop'), stop_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }, class: 'button'
+    - else
+      = link_to t('admin.instances.delivery.restart'), restart_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }, class: 'button'