Sha256: 31d65bebbb04fd31efa8e6cef200bc10efcee7542874ffeb2edf6adb5bd7c30f

Contents?: true

Size: 807 Bytes

Versions: 4

Compression:

Stored size: 807 Bytes

Contents

# frozen_string_literal: true

module Blacklight
  module Rendering
    class LinkToFacet < AbstractStep
      def render
        return next_step(values) unless config.link_to_facet

        next_step(render_link)
      end

      private

      # This allows the link to wrap an itemprop
      def render_link
        values.map { |v| link(link_field, v) }
      end

      def link_field
        return config.key if config.link_to_facet == true

        config.link_to_facet
      end

      def link(field, v)
        context.link_to v, search_path(field, v)
      end

      def search_path(field, v)
        context.search_action_path(facet_params(field, v))
      end

      def facet_params(field, item)
        context.search_state.reset.filter(field).add(item).params
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
blacklight-8.0.0.beta4 app/presenters/blacklight/rendering/link_to_facet.rb
blacklight-8.0.0.beta3 app/presenters/blacklight/rendering/link_to_facet.rb
blacklight-8.0.0.beta2 app/presenters/blacklight/rendering/link_to_facet.rb
blacklight-8.0.0.beta1 app/presenters/blacklight/rendering/link_to_facet.rb