Module: Blacklight::SearchHistoryConstraintsHelperBehavior

Included in:
SearchHistoryConstraintsHelper
Defined in:
app/helpers/blacklight/search_history_constraints_helper_behavior.rb

Overview

All methods in here are 'api' that may be over-ridden by plugins and local code, so method signatures and semantics should not be changed casually. implementations can be of course.

Includes methods for rendering more textually on Search History page (render_search_to_s(_*))

Instance Method Summary collapse

Instance Method Details

#render_filter_name(name) ⇒ Object

Render the name of the facet



50
51
52
53
# File 'app/helpers/blacklight/search_history_constraints_helper_behavior.rb', line 50

def render_filter_name name
  return "".html_safe if name.blank?
  (:span, t('blacklight.search.filters.label', :label => name), :class => 'filterName')
end

#render_filter_value(value, key = nil) ⇒ Object

Render the value of the facet



57
58
59
60
61
# File 'app/helpers/blacklight/search_history_constraints_helper_behavior.rb', line 57

def render_filter_value value, key = nil
  display_value = value
  display_value = facet_display_value(key, value) if key
  (:span, h(display_value), :class => 'filterValue')
end

#render_search_to_s(params) ⇒ Object

Simpler textual version of constraints, used on Search History page. Theoretically can may be DRY'd up with results page render_constraints, maybe even using the very same HTML with different CSS? But too tricky for now, too many changes to existing CSS. TODO.



13
14
15
16
# File 'app/helpers/blacklight/search_history_constraints_helper_behavior.rb', line 13

def render_search_to_s(params)
  render_search_to_s_q(params) +
  render_search_to_s_filters(params)
end

#render_search_to_s_element(key, value, options = {}) ⇒ Object

value can be Array, in which case elements are joined with 'and'. Pass in option :escape_value => false to pass in pre-rendered html for value. key with escape_key if needed.



44
45
46
# File 'app/helpers/blacklight/search_history_constraints_helper_behavior.rb', line 44

def render_search_to_s_element(key, value, options = {})
  (:span, render_filter_name(key) + (:span, value, :class => 'filterValues'), :class => 'constraint')
end

#render_search_to_s_filters(params) ⇒ Object

Render the search facet constraints



30
31
32
33
34
35
36
37
38
39
# File 'app/helpers/blacklight/search_history_constraints_helper_behavior.rb', line 30

def render_search_to_s_filters(params)
  return "".html_safe unless params[:f]

  safe_join(params[:f].collect do |facet_field, value_list|
    render_search_to_s_element(facet_field_label(facet_field),
      safe_join(value_list.collect do |value|
        render_filter_value(value, facet_field)
      end, (:span, " #{t('blacklight.and')} ", :class =>'filterSeparator')))    
  end, " \n ")
end

#render_search_to_s_q(params) ⇒ Object

Render the search query constraint



20
21
22
23
24
25
26
# File 'app/helpers/blacklight/search_history_constraints_helper_behavior.rb', line 20

def render_search_to_s_q(params)
  return "".html_safe if params['q'].blank?

  label = label_for_search_field(params[:search_field]) unless default_search_field && params[:search_field] == default_search_field[:key]

  render_search_to_s_element(label , render_filter_value(params['q']) )
end