Module: AdvancedHelper
- Defined in:
- app/helpers/advanced_helper.rb
Overview
Helper methods for the advanced search form
Instance Method Summary collapse
-
#advanced_search_context ⇒ Object
Current params without fields that will be over-written by adv.
-
#advanced_search_facet_partial_name(display_facet) ⇒ Object
Use configured facet partial name for facet or fallback on ‘catalog/facet_limit’.
-
#facet_value_checked?(field, value) ⇒ Boolean
Is facet value in adv facet search results?.
-
#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.
- #search_fields_for_advanced_search ⇒ Object
- #select_menu_for_field_operator ⇒ Object
Instance Method Details
#advanced_search_context ⇒ Object
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?
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_search ⇒ Object
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_operator ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'app/helpers/advanced_helper.rb', line 22 def = { t('blacklight_advanced_search.all') => 'AND', t('blacklight_advanced_search.any') => 'OR' }.sort select_tag(:op, (, params[:op]), :class => 'input-small') end |