Module: ActiveScaffold::Helpers::FilterHelpers

Included in:
ViewHelpers
Defined in:
lib/active_scaffold/helpers/filter_helpers.rb

Overview

Helpers rendering filters

Instance Method Summary collapse

Instance Method Details

#clear_filters_paramsObject



5
6
7
8
9
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 5

def clear_filters_params
  active_scaffold_config.list.filters.each_with_object({}) do |filter, url_options|
    url_options[filter.name] = nil
  end
end

#display_filter(filter) ⇒ Object



16
17
18
19
20
21
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 16

def display_filter(filter)
  return if filter.security_method && !controller.send(filter.security_method)

  options = filter.reject { |option| option.security_method_set? && !controller.send(option.security_method) }
  send :"display_filter_as_#{filter.type}", filter, options if options.present?
end


23
24
25
26
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 23

def display_filter_as_links(filter, options)
  content = options.map { |option| display_action_link(option, nil, nil, authorized: true, level: 1) }
  display_action_link(filter, safe_join(content), nil, level: 0, title: filter.description) if content.present?
end

#display_filter_as_select(filter, options) ⇒ Object



28
29
30
31
32
33
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 28

def display_filter_as_select(filter, options)
  content = options.map do |option|
     :option, option.label(nil), data: {url: action_link_url(option, nil)}, selected: action_link_selected?(option, nil), title: option.description
  end
  select_tag nil, safe_join(content), class: "action_group #{link.css_class}", title: filter.description || filter.label, data: {remote: :url} if content.present?
end

#display_filters(filters) ⇒ Object



11
12
13
14
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 11

def display_filters(filters)
  content = filters.sort_by(&:weight).map { |filter| display_filter(filter) }
   :div, safe_join(content), class: 'filters' if content.present?
end