summaryrefslogtreecommitdiffstats
path: root/app/views/admin/instances/show.html.haml
blob: 5bf4e899f3cf440517dda77c7d27719e5414449c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
- content_for :page_title do
  = @instance.domain

- if current_user.can?(:view_dashboard)
  - content_for :heading_actions do
    = l(@time_period.first)
    = ' - '
    = l(@time_period.last)

  - if @instance.persisted?
    %p
      = fa_icon 'info fw'
      = t('admin.instances.totals_time_period_hint_html')

    .dashboard
      .dashboard__item
        = react_admin_component :counter,
                                end_at: @time_period.last,
                                href: admin_accounts_path(origin: 'remote', by_domain: @instance.domain),
                                label: t('admin.instances.dashboard.instance_accounts_measure'),
                                measure: 'instance_accounts',
                                params: { domain: @instance.domain },
                                start_at: @time_period.first
      .dashboard__item
        = react_admin_component :counter,
                                end_at: @time_period.last,
                                label: t('admin.instances.dashboard.instance_statuses_measure'),
                                measure: 'instance_statuses',
                                params: { domain: @instance.domain },
                                start_at: @time_period.first
      .dashboard__item
        = react_admin_component :counter,
                                end_at: @time_period.last,
                                label: t('admin.instances.dashboard.instance_media_attachments_measure'),
                                measure: 'instance_media_attachments',
                                params: { domain: @instance.domain },
                                start_at: @time_period.first
      .dashboard__item
        = react_admin_component :counter,
                                end_at: @time_period.last,
                                label: t('admin.instances.dashboard.instance_follows_measure'),
                                measure: 'instance_follows',
                                params: { domain: @instance.domain },
                                start_at: @time_period.first
      .dashboard__item
        = react_admin_component :counter,
                                end_at: @time_period.last,
                                label: t('admin.instances.dashboard.instance_followers_measure'),
                                measure: 'instance_followers',
                                params: { domain: @instance.domain },
                                start_at: @time_period.first
      .dashboard__item
        = react_admin_component :counter,
                                end_at: @time_period.last,
                                href: admin_reports_path(by_target_domain: @instance.domain),
                                label: t('admin.instances.dashboard.instance_reports_measure'),
                                measure: 'instance_reports',
                                params: { domain: @instance.domain },
                                start_at: @time_period.first
      .dashboard__item
        = react_admin_component :dimension,
                                dimension: 'instance_accounts',
                                end_at: @time_period.last,
                                label: t('admin.instances.dashboard.instance_accounts_dimension'),
                                limit: 8,
                                params: { domain: @instance.domain },
                                start_at: @time_period.first
      .dashboard__item
        = react_admin_component :dimension,
                                dimension: 'instance_languages',
                                end_at: @time_period.last,
                                label: t('admin.instances.dashboard.instance_languages_dimension'),
                                limit: 8,
                                params: { domain: @instance.domain },
                                start_at: @time_period.first

  - else
    %p
      = t('admin.instances.unknown_instance')

%hr.spacer/

%h3= t('admin.instances.content_policies.title')

- if limited_federation_mode?
  %p= t('admin.instances.content_policies.limited_federation_mode_description_html')

  - if @instance.domain_allow
    = link_to t('admin.domain_allows.undo'), admin_domain_allow_path(@instance.domain_allow), class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure'), method: :delete }
  - else
    = link_to t('admin.domain_allows.add_new'), admin_domain_allows_path(domain_allow: { domain: @instance.domain }), class: 'button', method: :post
- else
  %p= t('admin.instances.content_policies.description_html')

  - if @instance.domain_block
    .table-wrapper
      %table.table.horizontal-table
        %tbody
          %tr
            %th= t('admin.instances.content_policies.comment')
            %td= @instance.domain_block.private_comment
          %tr
            %th= t('admin.instances.content_policies.reason')
            %td= @instance.domain_block.public_comment
          %tr
            %th= t('admin.instances.content_policies.policy')
            %td= @instance.domain_block.policies.map { |policy| t(policy, scope: 'admin.instances.content_policies.policies') }.join(' · ')

    = link_to t('admin.domain_blocks.edit'), edit_admin_domain_block_path(@instance.domain_block), class: 'button'
    = link_to t('admin.domain_blocks.undo'), admin_domain_block_path(@instance.domain_block), class: 'button', data: { confirm: t('admin.accounts.are_you_sure'), method: :delete }
  - else
    = link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @instance.domain), class: 'button'

- if @instance.persisted?
  %hr.spacer/

  %h3= t('admin.instances.availability.title')

  %p
    = t('admin.instances.availability.description_html', count: DeliveryFailureTracker::FAILURE_DAYS_THRESHOLD)

  .availability-indicator
    %ul.availability-indicator__graphic
      - @instance.availability_over_days(14).each do |(date, failing)|
        %li.availability-indicator__graphic__item{ class: failing ? 'negative' : 'neutral', title: l(date) }
    .availability-indicator__hint
      - if @instance.unavailable?
        %span.negative-hint
          = t('admin.instances.availability.failure_threshold_reached', date: l(@instance.unavailable_domain.created_at.to_date))
          = link_to t('admin.instances.delivery.restart'), restart_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
      - elsif @instance.exhausted_deliveries_days.empty?
        %span.positive-hint
          = t('admin.instances.availability.no_failures_recorded')
          = link_to t('admin.instances.delivery.stop'), stop_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }
      - else
        %span.negative-hint
          = t('admin.instances.availability.failures_recorded', count: @instance.delivery_failure_tracker.days)
          %span= link_to t('admin.instances.delivery.clear'), clear_delivery_errors_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post } unless @instance.exhausted_deliveries_days.empty?
          %span= link_to t('admin.instances.delivery.stop'), stop_delivery_admin_instance_path(@instance), data: { confirm: t('admin.accounts.are_you_sure'), method: :post }

  - if @instance.purgeable?
    %p=