Sha256: 5962852921d38592673b7debd515064f3ccd1812bdd866fad4eebc6ec277492b

Contents?: true

Size: 1.12 KB

Versions: 45

Compression:

Stored size: 1.12 KB

Contents

module Avo
  module Concerns
    module FiltersSessionHandler
      def reset_filters
        return unless cache_resource_filters?

        session.delete(filters_session_key)
      end

      def fetch_filters
        return filters_from_params unless cache_resource_filters?

        (filters_from_params && save_filters_to_session) || filters_from_session
      end

      def filters_from_params
        params[Avo::Filters::BaseFilter::PARAM_KEY].presence
      end

      def save_filters_to_session
        session[filters_session_key] = params[Avo::Filters::BaseFilter::PARAM_KEY]
      end

      def filters_from_session
        session[filters_session_key]
      end

      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

      def cache_resource_filters?
        Avo::ExecutionContext.new(
          target: Avo.configuration.cache_resource_filters,
          current_user: _current_user,
          resource: @resource
        ).handle
      end
    end
  end
end

Version data entries

45 entries across 45 versions & 1 rubygems

Version Path
avo-3.4.1 lib/avo/concerns/filters_session_handler.rb
avo-3.4.0 lib/avo/concerns/filters_session_handler.rb
avo-3.3.6 lib/avo/concerns/filters_session_handler.rb
avo-3.3.5 lib/avo/concerns/filters_session_handler.rb
avo-3.3.4 lib/avo/concerns/filters_session_handler.rb
avo-3.3.3 lib/avo/concerns/filters_session_handler.rb
avo-3.3.2 lib/avo/concerns/filters_session_handler.rb
avo-3.3.1 lib/avo/concerns/filters_session_handler.rb
avo-3.3.0 lib/avo/concerns/filters_session_handler.rb
avo-3.2.3 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta23 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta20 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta21 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta17 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta22 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta18 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta19 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta24 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta15 lib/avo/concerns/filters_session_handler.rb
avo-3.0.1.beta16 lib/avo/concerns/filters_session_handler.rb