Class: Avo::Filters::BaseFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/avo/filters/base_filter.rb

Constant Summary collapse

PARAM_KEY =
:filters

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.decode_filters(filter_params) ⇒ Object



15
16
17
18
19
# File 'lib/avo/filters/base_filter.rb', line 15

def decode_filters(filter_params)
  JSON.parse(Base64.decode64(filter_params))
rescue
  {}
end

.get_empty_messageObject



21
22
23
# File 'lib/avo/filters/base_filter.rb', line 21

def get_empty_message
  empty_message || I18n.t("avo.no_options_available")
end

Instance Method Details

#applied_filtersObject

Fetch the applied filters from the params



52
53
54
# File 'lib/avo/filters/base_filter.rb', line 52

def applied_filters
  self.class.decode_filters params[PARAM_KEY]
end

#applied_or_default_value(applied_filters) ⇒ Object

Get the applied value this filter. If it's not present return the default value.



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/avo/filters/base_filter.rb', line 38

def applied_or_default_value(applied_filters)
  # Get the values for this particular filter
  applied_value = applied_filters[self.class.to_s]

  # Return that value if present
  return applied_value unless applied_value.nil?

  # Return that default
  default
rescue
  default
end

#apply_query(request, query, value) ⇒ Object



26
27
28
29
30
# File 'lib/avo/filters/base_filter.rb', line 26

def apply_query(request, query, value)
  value.stringify_keys! if value.is_a? Hash

  apply(request, query, value)
end

#idObject



32
33
34
# File 'lib/avo/filters/base_filter.rb', line 32

def id
  self.class.name.underscore.tr("/", "_")
end