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



7
8
9
10
11
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 7

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



24
25
26
27
28
29
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 24

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


31
32
33
34
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 31

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



36
37
38
39
40
41
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 36

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 #{filter.css_class}", title: filter.description || filter.label, data: {remote: :url} if content.present?
end

#display_filters(filters) ⇒ Object



13
14
15
16
17
18
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 13

def display_filters(filters)
  return unless filters_enabled?

  content = render_filters filters
   :div, content, class: 'filters' if content.present?
end

#render_filters(filters) ⇒ Object



20
21
22
# File 'lib/active_scaffold/helpers/filter_helpers.rb', line 20

def render_filters(filters)
  safe_join(filters.sort_by(&:weight).filter_map { |filter| display_filter(filter) })
end