Sha256: 3db9bfdbabe1127ce2937be9dca19af08b68e998c1d5f6975e975fa3be5a155a

Contents?: true

Size: 1.32 KB

Versions: 22

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

class Blacklight::Configuration
  class SessionTrackingConfig < Blacklight::OpenStructWithHashAccess
    # @!attribute storage
    #   @return [String, FalseClass] 'server': use server-side tracking; 'client': delegate search tracking and prev/next navigation to client
    # @!attribute applied_params_component
    #   @return [Class] component class used to render a facet group
    # @!attribute item_pagination_component
    #   @return [Class] component class used to render the constraints

    def initialize(property_hash = {})
      super({ storage: 'server' }.merge(property_hash))
    end

    def applied_params_component
      super || default_applied_params_component(storage)
    end

    def item_pagination_component
      super || default_item_pagination_component(storage)
    end

    def url_helper
      super || default_url_helper(storage)
    end

    def default_applied_params_component(storage)
      return Blacklight::SearchContext::ServerAppliedParamsComponent if storage == 'server'

      nil
    end

    def default_item_pagination_component(storage)
      return Blacklight::SearchContext::ServerItemPaginationComponent if storage == 'server'

      nil
    end

    # extension point for alternative storage types
    def default_url_helper(_storage)
      nil
    end
  end
end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
blacklight-8.8.2 lib/blacklight/configuration/session_tracking_config.rb
blacklight-9.0.0.beta1 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.8.1 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.8.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.7.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.6.1 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.6.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.5.1 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.5.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.4.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/blacklight-8.3.0/lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.3.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.2.2 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.2.1 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.2.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.1.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.0.1 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.0.0 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.0.0.beta8 lib/blacklight/configuration/session_tracking_config.rb
blacklight-8.0.0.beta7 lib/blacklight/configuration/session_tracking_config.rb