~cytrogen/masto-fe

1b052c7b2d70b371648732d4d2a1d0ca3a52cab0 — Eugen Rochko 6 years ago 707ddf7
Remove expensive counters from federation page in admin UI (#11139)

2 files changed, 13 insertions(+), 16 deletions(-)

M app/models/instance.rb
M app/views/admin/instances/index.html.haml
M app/models/instance.rb => app/models/instance.rb +2 -6
@@ 11,12 11,8 @@ class Instance
    @domain_block   = resource.is_a?(DomainBlock) ? resource : DomainBlock.rule_for(domain)
  end

  def cached_sample_accounts
    Rails.cache.fetch("#{cache_key}/sample_accounts", expires_in: 12.hours) { Account.where(domain: domain).searchable.joins(:account_stat).popular.limit(3) }
  end

  def cached_accounts_count
    @accounts_count || Rails.cache.fetch("#{cache_key}/count", expires_in: 12.hours) { Account.where(domain: domain).count }
  def countable?
    @accounts_count.present?
  end

  def to_param

M app/views/admin/instances/index.html.haml => app/views/admin/instances/index.html.haml +11 -10
@@ 33,21 33,22 @@
      %h4
        = instance.domain
        %small
          = t('admin.instances.known_accounts', count: instance.cached_accounts_count)

          - if instance.domain_block
            - first_item = true
            - if !instance.domain_block.noop?
              •
              = t("admin.domain_blocks.severity.#{instance.domain_block.severity}")
              - first_item = false
            - if instance.domain_block.reject_media?
              •
              - unless first_item
                •
              = t('admin.domain_blocks.rejecting_media')
              - first_item = false
            - if instance.domain_block.reject_reports?
              •
              - unless first_item
                •
              = t('admin.domain_blocks.rejecting_reports')

      .avatar-stack
        - instance.cached_sample_accounts.each do |account|
          = image_tag current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url, width: 48, height: 48, alt: '', class: 'account__avatar'

          - else
            = t('admin.accounts.no_limits_imposed')
      - if instance.countable?
        .trends__item__current{ title: t('admin.instances.known_accounts', count: instance.accounts_count) }= number_to_human instance.accounts_count, strip_insignificant_zeros: true
= paginate paginated_instances