Module: Avo::Concerns::FiltersSessionHandler
- Included in:
- BaseController
- Defined in:
- lib/avo/concerns/filters_session_handler.rb
Instance Method Summary collapse
- #cache_resource_filters? ⇒ Boolean
- #fetch_filters ⇒ Object
- #filters_from_params ⇒ Object
- #filters_from_session ⇒ Object
- #filters_session_key ⇒ Object
- #reset_filters ⇒ Object
- #save_filters_to_session ⇒ Object
Instance Method Details
#cache_resource_filters? ⇒ Boolean
36 37 38 39 40 |
# File 'lib/avo/concerns/filters_session_handler.rb', line 36 def cache_resource_filters? return Avo.configuration.cache_resource_filters unless Avo.configuration.cache_resource_filters.is_a?(Proc) Avo.configuration.cache_resource_filters.call(current_user: current_user, resource: @resource) end |
#fetch_filters ⇒ Object
11 12 13 14 15 |
# File 'lib/avo/concerns/filters_session_handler.rb', line 11 def fetch_filters return filters_from_params unless cache_resource_filters? (filters_from_params && save_filters_to_session) || filters_from_session end |
#filters_from_params ⇒ Object
17 18 19 |
# File 'lib/avo/concerns/filters_session_handler.rb', line 17 def filters_from_params params[Avo::Filters::BaseFilter::PARAM_KEY].presence end |
#filters_from_session ⇒ Object
25 26 27 |
# File 'lib/avo/concerns/filters_session_handler.rb', line 25 def filters_from_session session[filters_session_key] end |
#filters_session_key ⇒ Object
29 30 31 32 33 34 |
# File 'lib/avo/concerns/filters_session_handler.rb', line 29 def filters_session_key @filters_session_key ||= '/filters/' << %w[ turbo_frame controller resource_name related_name action id ].map { |key| params[key] }.compact.join('/') end |
#reset_filters ⇒ Object
5 6 7 8 9 |
# File 'lib/avo/concerns/filters_session_handler.rb', line 5 def reset_filters return unless cache_resource_filters? session.delete(filters_session_key) end |
#save_filters_to_session ⇒ Object
21 22 23 |
# File 'lib/avo/concerns/filters_session_handler.rb', line 21 def save_filters_to_session session[filters_session_key] = params[Avo::Filters::BaseFilter::PARAM_KEY] end |