Sha256: 230f78af5ff074efc6f48db078f275300e9c79ed93babf0e25dfb11d0b4f0a86

Contents?: true

Size: 978 Bytes

Versions: 29

Compression:

Stored size: 978 Bytes

Contents

module Avo
  module Concerns
    module FiltersSessionHandler
      def reset_filters
        return unless Avo.configuration.session_persistence_enabled?

        session.delete(filters_session_key)
      end

      def fetch_filters
        return filters_from_params unless Avo.configuration.session_persistence_enabled?

        (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 ||= "/encoded_filters/" << %w[
          turbo_frame controller resource_name related_name
          action id
        ].map { |key| params[key] }.compact.join("/")
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
avo-3.17.9.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.9 lib/avo/concerns/filters_session_handler.rb
avo-3.17.8.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.8 lib/avo/concerns/filters_session_handler.rb
avo-3.17.7 lib/avo/concerns/filters_session_handler.rb
avo-3.17.6.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.6 lib/avo/concerns/filters_session_handler.rb
avo-3.17.5 lib/avo/concerns/filters_session_handler.rb
avo-3.17.4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.3 lib/avo/concerns/filters_session_handler.rb
avo-3.17.5.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.4.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.3.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.2.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.2 lib/avo/concerns/filters_session_handler.rb
avo-3.17.1.tw4 lib/avo/concerns/filters_session_handler.rb
avo-3.17.1 lib/avo/concerns/filters_session_handler.rb
avo-3.17.0 lib/avo/concerns/filters_session_handler.rb
avo-3.16.6 lib/avo/concerns/filters_session_handler.rb
avo-3.16.5 lib/avo/concerns/filters_session_handler.rb