Class: Avo::Filters::BaseFilter
- Inherits:
-
Object
- Object
- Avo::Filters::BaseFilter
- Defined in:
- lib/avo/filters/base_filter.rb
Direct Known Subclasses
BooleanFilter, MultipleSelectFilter, SelectFilter, TextFilter
Constant Summary collapse
- PARAM_KEY =
:filters
Instance Attribute Summary collapse
-
#arguments ⇒ Object
readonly
Returns the value of attribute arguments.
Class Method Summary collapse
Instance Method Summary collapse
-
#applied_filters ⇒ Object
Fetch the applied filters from the params.
-
#applied_or_default_value(applied_filters) ⇒ Object
Get the applied value this filter.
- #apply_query(request, query, value) ⇒ Object
- #id ⇒ Object
-
#initialize(arguments: {}) ⇒ BaseFilter
constructor
A new instance of BaseFilter.
- #visible_in_view(resource: nil, parent_model: nil, parent_resource: nil) ⇒ Object
Constructor Details
#initialize(arguments: {}) ⇒ BaseFilter
Returns a new instance of BaseFilter.
29 30 31 |
# File 'lib/avo/filters/base_filter.rb', line 29 def initialize(arguments: {}) @arguments = arguments end |
Instance Attribute Details
#arguments ⇒ Object (readonly)
Returns the value of attribute arguments.
13 14 15 |
# File 'lib/avo/filters/base_filter.rb', line 13 def arguments @arguments end |
Class Method Details
.decode_filters(filter_params) ⇒ Object
18 19 20 21 22 |
# File 'lib/avo/filters/base_filter.rb', line 18 def decode_filters(filter_params) JSON.parse(Base64.decode64(filter_params)) rescue {} end |
.get_empty_message ⇒ Object
24 25 26 |
# File 'lib/avo/filters/base_filter.rb', line 24 def || I18n.t("avo.no_options_available") end |
Instance Method Details
#applied_filters ⇒ Object
Fetch the applied filters from the params
59 60 61 |
# File 'lib/avo/filters/base_filter.rb', line 59 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.
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/avo/filters/base_filter.rb', line 45 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
33 34 35 36 37 |
# File 'lib/avo/filters/base_filter.rb', line 33 def apply_query(request, query, value) value.stringify_keys! if value.is_a? Hash apply(request, query, value) end |
#id ⇒ Object
39 40 41 |
# File 'lib/avo/filters/base_filter.rb', line 39 def id self.class.name.underscore.tr("/", "_") end |
#visible_in_view(resource: nil, parent_model: nil, parent_resource: nil) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/avo/filters/base_filter.rb', line 63 def visible_in_view(resource: nil, parent_model: nil, parent_resource: nil) return true if visible.blank? # Run the visible block if available Avo::Hosts::VisibilityHost.new( block: visible, params: params, parent_model: parent_model, parent_resource: parent_resource, resource: resource, arguments: arguments ).handle end |