forked from asonix/mastodon
The `params` variable here was quite overloaded. It exists via the controller to hold the request params, and was sometimes being used in this helper as that object, but other times was being used as a local variable, or to pass to another method, and this was confusing. This change renames the args for a method away from `params` for more clarity, and extracts the actual usage of the controller-provided `params` to a better-named method for clarity.
36 lines
955 B
Ruby
36 lines
955 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Admin::FilterHelper
|
|
ACCOUNT_FILTERS = %i(local remote by_domain silenced suspended recent username display_name email ip).freeze
|
|
REPORT_FILTERS = %i(resolved account_id target_account_id).freeze
|
|
|
|
FILTERS = ACCOUNT_FILTERS + REPORT_FILTERS
|
|
|
|
def filter_link_to(text, more_params)
|
|
new_url = filtered_url_for(more_params)
|
|
link_to text, new_url, class: filter_link_class(new_url)
|
|
end
|
|
|
|
def table_link_to(icon, text, path, options = {})
|
|
link_to safe_join([fa_icon(icon), text]), path, options.merge(class: 'table-action-link')
|
|
end
|
|
|
|
private
|
|
|
|
def filter_params(more_params)
|
|
controller_request_params.merge(more_params)
|
|
end
|
|
|
|
def filter_link_class(new_url)
|
|
filtered_url_for(controller_request_params) == new_url ? 'selected' : ''
|
|
end
|
|
|
|
def filtered_url_for(url_params)
|
|
url_for filter_params(url_params)
|
|
end
|
|
|
|
def controller_request_params
|
|
params.permit(FILTERS)
|
|
end
|
|
end
|