Module: AdvancedHelper

Defined in:
app/helpers/advanced_helper.rb

Overview

Helper methods for the advanced search form

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.



33
34
35
36
37
# File 'app/helpers/advanced_helper.rb', line 33

def advanced_search_context
  my_params = params.except :page, :commit, :f_inclusive, :q, :search_field, :op, :action, :index, :sort, :controller, :utf8

  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’



46
47
48
# File 'app/helpers/advanced_helper.rb', line 46

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

#facet_value_checked?(field, value) ⇒ Boolean

Is facet value in adv facet search results?

Returns:

  • (Boolean)


18
19
20
# File 'app/helpers/advanced_helper.rb', line 18

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.



7
8
9
10
11
12
13
14
15
# File 'app/helpers/advanced_helper.rb', line 7

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



39
40
41
42
43
# File 'app/helpers/advanced_helper.rb', line 39

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



22
23
24
25
26
27
28
29
# File 'app/helpers/advanced_helper.rb', line 22

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