Module: Blacklight::RenderConstraintsHelperBehavior

Defined in:
app/helpers/blacklight/render_constraints_helper_behavior.rb

Instance Method Summary collapse

Instance Method Details

#render_constraint_element(label, value, options = {}) ⇒ Object

Render a label/value constraint on the screen. Can be called by plugins and such to get application-defined rendering.

Can be over-ridden locally to render differently if desired, although in most cases you can just change CSS instead.

Can pass in nil label if desired.

options:

:remove

url to execute for a ‘remove’ action

:classes

can be an array of classes to add to container span for constraint.

:escape_label

default true, HTML escape.

:escape_value

default true, HTML escape.



80
81
82
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 80

def render_constraint_element(label, value, options = {})
  render(:partial => "catalog/constraints_element", :locals => {:label => label, :value => value, :options => options})
end

#render_constraints(localized_params = params) ⇒ Object

Render actual constraints, not including header or footer info.



5
6
7
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 5

def render_constraints(localized_params = params)
  (render_constraints_query(localized_params) + render_constraints_filters(localized_params)).html_safe
end

#render_constraints_filters(localized_params = params) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 34

def render_constraints_filters(localized_params = params)
   return "".html_safe unless localized_params[:f]
   content = []
   localized_params[:f].each_pair do |facet,values|
     content << render_filter_element(facet, values, localized_params)
   end 

   return content.flatten.join("\n").html_safe    
end

#render_constraints_query(localized_params = params) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 9

def render_constraints_query(localized_params = params)
  # So simple don't need a view template, we can just do it here.
  if (!localized_params[:q].blank?)
    label = 
      if (localized_params[:search_field].blank? || (default_search_field && localized_params[:search_field] == default_search_field[:key] ) ) 
        nil 
      else
        label_for_search_field(localized_params[:search_field])
      end 
    if params[:controller] == 'dashboard'       
      render_constraint_element(label,
          localized_params[:q], 
          :classes => ["query"], 
          :remove => dashboard_index_path(localized_params.merge(:q=>nil, :action=>'index')))
    else
      render_constraint_element(label,
          localized_params[:q], 
          :classes => ["query"], 
          :remove => catalog_index_path(localized_params.merge(:q=>nil, :action=>'index')))
    end
  else
    "".html_safe
  end 
end

#render_filter_element(facet, values, localized_params) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 44

def render_filter_element(facet, values, localized_params)
  facet_configuration_for_field(facet)
  values.map do |val|
    if params[:controller] == 'dashboard'
      render_constraint_element( facet_field_labels[facet],
                                 facet_display_value(facet, val),
                :remove => dashboard_index_path(remove_facet_params(facet, val, localized_params)),
                :classes => ["filter", "filter-" + facet.parameterize] 
              ) + "\n"    
    else
      render_constraint_element( facet_field_labels[facet],
                                 facet_display_value(facet, val),
                :remove => catalog_index_path(remove_facet_params(facet, val, localized_params)),
                :classes => ["filter", "filter-" + facet.parameterize] 
              ) + "\n"    
    end
  end 
end