end
def filter_params
- params.permit(:limited)
+ params.permit(:limited, :by_domain)
end
end
end
INVITE_FILTER = %i(available expired).freeze
CUSTOM_EMOJI_FILTERS = %i(local remote by_domain shortcode).freeze
TAGS_FILTERS = %i(hidden).freeze
- INSTANCES_FILTERS = %i(limited).freeze
+ INSTANCES_FILTERS = %i(limited by_domain).freeze
FILTERS = ACCOUNT_FILTERS + REPORT_FILTERS + INVITE_FILTER + CUSTOM_EMOJI_FILTERS + TAGS_FILTERS + INSTANCES_FILTERS
has_many :accounts, foreign_key: :domain, primary_key: :domain
delegate :count, to: :accounts, prefix: true
+ scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
+
def self.blocked?(domain)
where(domain: domain, severity: :suspend).exists?
end
def results
if params[:limited].present?
- DomainBlock.order(id: :desc)
+ scope = DomainBlock
+ scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
+ scope.order(id: :desc)
else
- Account.remote.by_domain_accounts
+ scope = Account.remote
+ scope = scope.matches_domain(params[:by_domain]) if params[:by_domain].present?
+ scope.by_domain_accounts
end
end
end
%div{ style: 'flex: 1 1 auto; text-align: right' }
= link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path, class: 'button'
+= form_tag admin_instances_url, method: 'GET', class: 'simple_form' do
+ .fields-group
+ - Admin::FilterHelper::INSTANCES_FILTERS.each do |key|
+ - if params[key].present?
+ = hidden_field_tag key, params[key]
+
+ - %i(by_domain).each do |key|
+ .input.string.optional
+ = text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.instances.#{key}")
+
+ .actions
+ %button= t('admin.accounts.search')
+ = link_to t('admin.accounts.reset'), admin_custom_emojis_path, class: 'button negative'
+
%hr.spacer/
- @instances.each do |instance|
back_to_account: Back To Account
title: "%{acct}'s Followers"
instances:
+ by_domain: Domain
delivery_available: Delivery is available
known_accounts:
one: "%{count} known account"