module BlacklightRangeLimit::RangeLimitBuilder

Public Instance Methods

add_range_limit_params(solr_params) click to toggle source

Method added to to fetch proper things for date ranges.

# File lib/blacklight_range_limit/range_limit_builder.rb, line 14
def add_range_limit_params(solr_params)
  ranged_facet_configs = blacklight_config.facet_fields.select { |_key, config| config.range }
  return solr_params unless ranged_facet_configs.any?

  solr_params["stats"] = "true"
  solr_params["stats.field"] ||= []

  ranged_facet_configs.each do |field_key, config|
    solr_params["stats.field"] << config.field

    range_config = config.range_config
    next if range_config[:segments] == false

    selected_value = search_state.filter(config.key).values.first
    range = (selected_value if selected_value.is_a? Range) || range_config[:assumed_boundaries]

    add_range_segments_to_solr!(solr_params, field_key, range.first, range.last) if range.present?
  end

  solr_params
end
fetch_specific_range_limit(solr_params) click to toggle source

Another processing method, this one is NOT included in default processing chain, it is specifically swapped in *instead of* add_range_limit_params for certain ajax requests that only want to fetch range limit segments for ONE field.

It turns off facetting and sets rows to 0 as well, only results for single specified field are needed.

Specified field and parameters are specified in incoming parameters range_field, range_start, range_end

# File lib/blacklight_range_limit/range_limit_builder.rb, line 47
def fetch_specific_range_limit(solr_params)
  field_key = blacklight_params[:range_field] # what field to fetch for
  start = blacklight_params[:range_start].to_i
  finish = blacklight_params[:range_end].to_i

  add_range_segments_to_solr!(solr_params, field_key, start, finish )

  # Remove all field faceting for efficiency, we won't be using it.
  solr_params.delete("facet.field")
  solr_params.delete("facet.field".to_sym)

  # We don't need any actual rows either
  solr_params[:rows] = 0

  return solr_params
end