Module: BlacklightRangeLimit::ControllerOverride

Extended by:
ActiveSupport::Concern, Deprecation
Defined in:
lib/blacklight_range_limit/controller_override.rb

Constant Summary collapse

RANGE_LIMIT_FIELDS =
[:range_end, :range_field, :range_start].freeze

Instance Method Summary collapse

Instance Method Details

#range_limitObject

Action method of our own! Delivers a partial that’s a display of a single fields range facets. Used when we need a second Solr query to get range facets, after the first found min/max from result set.

Raises:

  • (ActionController::RoutingError)


44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/blacklight_range_limit/controller_override.rb', line 44

def range_limit
  @facet = blacklight_config.facet_fields[params[:range_field]]
  raise ActionController::RoutingError, 'Not Found' unless @facet&.range

  # We need to swap out the add_range_limit_params search param filter,
  # and instead add in our fetch_specific_range_limit filter,
  # to fetch only the range limit segments for only specific
  # field (with start/end params) mentioned in query params
  # range_field, range_start, and range_end

  @response, _ = search_service.search_results do |search_builder|
    search_builder.except(:add_range_limit_params).append(:fetch_specific_range_limit)
  end

  display_facet = @response.aggregations[@facet.field] || Blacklight::Solr::Response::Facets::FacetField.new(@facet.key, [], response: @response)

  @presenter = (@facet.presenter || BlacklightRangeLimit::FacetFieldPresenter).new(@facet, display_facet, view_context)

  render 'blacklight_range_limit/range_segments', locals: { facet_field: @presenter }, layout: !request.xhr?
end

#range_limit_panelObject



65
66
67
68
# File 'lib/blacklight_range_limit/controller_override.rb', line 65

def range_limit_panel
  Deprecation.warn(BlacklightRangeLimit::ControllerOverride, 'range_limit_panel is deprecated; use the normal facet modal route instead')
  facet
end