Module: Admin::Resources::FiltersHelper

Defined in:
app/helpers/admin/resources/filters_helper.rb

Instance Method Summary collapse

Instance Method Details

#build_filters(resource = @resource, params = params) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/helpers/admin/resources/filters_helper.rb', line 3

def build_filters(resource = @resource, params = params)
  if (typus_filters = resource.typus_filters).any?
    locals = {}

    locals[:filters] = typus_filters.map do |key, value|
                         { :key => set_filter(key, value),
                           :value => send("#{value}_filter", key) }
                       end

    rejections = %w(controller action locale utf8 sort_order order_by) + locals[:filters].map { |f| f[:key] }
    locals[:hidden_filters] = params.dup.delete_if { |k, v| rejections.include?(k) }

    render "helpers/admin/resources/filters", locals
  end
end

#set_filter(key, value) ⇒ Object



19
20
21
22
23
24
25
26
# File 'app/helpers/admin/resources/filters_helper.rb', line 19

def set_filter(key, value)
  return key unless value == :belongs_to

  att_assoc = @resource.reflect_on_association(key.to_sym)
  class_name = att_assoc.options[:class_name] || key.capitalize.camelize
  resource = class_name.constantize
  att_assoc.foreign_key
end