Module: BlacklightAdvancedSearch::AdvancedHelperBehavior

Included in:
AdvancedHelper
Defined in:
app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb

Overview

implementation for AdvancedHelper

Instance Method Summary collapse

Instance Method Details

#advanced_search_contextObject

Current params without fields that will be over-written by adv. search, or other fields we don’t want.



34
35
36
37
38
# File 'app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb', line 34

def advanced_search_context
  my_params = search_state.params_for_search.except :page, :f_inclusive, :q, :search_field, :op, :index, :sort

  my_params.except!(*search_fields_for_advanced_search.map { |_key, field_def| field_def[:key] })
end

#advanced_search_facet_partial_name(display_facet) ⇒ Object

Use configured facet partial name for facet or fallback on ‘catalog/facet_limit’



53
54
55
# File 'app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb', line 53

def advanced_search_facet_partial_name(display_facet)
  facet_configuration_for_field(display_facet.name).try(:partial) || "catalog/facet_limit"
end

#facet_field_names_for_advanced_searchObject



46
47
48
49
50
# File 'app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb', line 46

def facet_field_names_for_advanced_search
  @facet_field_names_for_advanced_search ||= begin
    blacklight_config.facet_fields.select { |_k, v| v.include_in_advanced_search || v.include_in_advanced_search.nil? }.values.map(&:field)
  end
end

#facet_value_checked?(field, value) ⇒ Boolean

Is facet value in adv facet search results?

Returns:

  • (Boolean)


19
20
21
# File 'app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb', line 19

def facet_value_checked?(field, value)
  BlacklightAdvancedSearch::QueryParser.new(params, blacklight_config).filters_include_value?(field, value)
end

#label_tag_default_for(key) ⇒ Object

Fill in default from existing search, if present – if you are using same search fields for basic search and advanced, will even fill in properly if existing search used basic search on same field present in advanced.



8
9
10
11
12
13
14
15
16
# File 'app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb', line 8

def label_tag_default_for(key)
  if !params[key].blank?
    return params[key]
  elsif params["search_field"] == key
    return params["q"]
  else
    return nil
  end
end

#search_fields_for_advanced_searchObject



40
41
42
43
44
# File 'app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb', line 40

def search_fields_for_advanced_search
  @search_fields_for_advanced_search ||= begin
    blacklight_config.search_fields.select { |_k, v| v.include_in_advanced_search || v.include_in_advanced_search.nil? }
  end
end

#select_menu_for_field_operatorObject



23
24
25
26
27
28
29
30
# File 'app/helpers/blacklight_advanced_search/advanced_helper_behavior.rb', line 23

def select_menu_for_field_operator
  options = {
    t('blacklight_advanced_search.all') => 'AND',
    t('blacklight_advanced_search.any') => 'OR'
  }.sort

  select_tag(:op, options_for_select(options, params[:op]), class: 'input-small')
end