Module: Blacklight::RenderConstraintsHelperBehavior

Extended by:
Deprecation
Included in:
CatalogHelperBehavior
Defined in:
app/helpers/blacklight/render_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 contraints graphically on the search results page (render_constraints(_*))

Instance Method Summary collapse

Instance Method Details

#constraints_helpers_and_partials_from_blacklight?Boolean

Returns:

  • (Boolean)


142
143
144
145
146
147
148
149
150
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 142

def constraints_helpers_and_partials_from_blacklight?
  method(:render_constraints).owner == Blacklight::RenderConstraintsHelperBehavior &&
    method(:render_constraints_query).owner == Blacklight::RenderConstraintsHelperBehavior &&
    method(:remove_constraint_url).owner == Blacklight::RenderConstraintsHelperBehavior &&
    method(:render_constraints_filters).owner == Blacklight::RenderConstraintsHelperBehavior &&
    method(:render_filter_element).owner == Blacklight::RenderConstraintsHelperBehavior &&
    method(:render_constraint_element).owner == Blacklight::RenderConstraintsHelperBehavior &&
    partial_from_blacklight?('catalog/constraints_element')
end

#query_has_constraints?(params_or_search_state = search_state) ⇒ Boolean

Deprecated.

Check if the query has any constraints defined (a query, facet, etc)

Parameters:

Returns:

  • (Boolean)


18
19
20
21
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 18

def query_has_constraints?(params_or_search_state = search_state)
  search_state = convert_to_search_state(params_or_search_state)
  search_state.has_constraints?
end

#remove_constraint_url(params_or_search_state = search_state) ⇒ String

Deprecated.

Provide a url for removing a particular constraint. This can be overriden in the case that you want parameters other than the defaults to be removed (e.g. :search_field)

Parameters:

  • params_or_search_state (Blacklight::SearchState, ActionController::Parameters) (defaults to: search_state)

    query parameters

Returns:

  • (String)


71
72
73
74
75
76
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 71

def remove_constraint_url(params_or_search_state = search_state)
  Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'remove_constraint_url is deprecated')
  search_state = convert_to_search_state(params_or_search_state)

  search_action_path(search_state.remove_query_params)
end

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

Deprecated.

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.

Parameters:

  • label (String)

    to display

  • value (String)

    to display

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :remove (String)

    url to execute for a 'remove' action

  • :classes (Array<String>)

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

Returns:

  • (String)


136
137
138
139
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 136

def render_constraint_element(label, value, options = {})
  Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_element is deprecated')
  render(partial: "catalog/constraints_element", locals: { label: label, value: value, options: options })
end

#render_constraints(localized_params = params, local_search_state = search_state) ⇒ String

Render the actual constraints, not including header or footer info.

Parameters:

  • localized_params (Hash) (defaults to: params)

    query parameters

Returns:

  • (String)


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

def render_constraints(localized_params = params, local_search_state = search_state)
  params_or_search_state = if localized_params != params
                             localized_params
                           else
                             local_search_state
                           end

  Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
    render_constraints_query(params_or_search_state) + render_constraints_filters(params_or_search_state)
  end
end

#render_constraints_filters(params_or_search_state = search_state) ⇒ String

Deprecated.

Render the facet constraints

Parameters:

Returns:

  • (String)


83
84
85
86
87
88
89
90
91
92
93
94
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 83

def render_constraints_filters(params_or_search_state = search_state)
  Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_filters is deprecated')
  search_state = convert_to_search_state(params_or_search_state)

  return "".html_safe unless search_state.filters.any?

  Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
    safe_join(search_state.filters.map do |field|
      render_filter_element(field.key, field.values, search_state)
    end, "\n")
  end
end

#render_constraints_query(params_or_search_state = search_state) ⇒ String

Deprecated.

Render the query constraints

Parameters:

  • params_or_search_state (Blacklight::SearchState, ActionController::Parameters) (defaults to: search_state)

    query parameters

Returns:

  • (String)


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

def render_constraints_query(params_or_search_state = search_state)
  Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_query is deprecated')
  search_state = convert_to_search_state(params_or_search_state)

  # So simple don't need a view template, we can just do it here.
  return "".html_safe if search_state.query_param.blank?

  Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
    render_constraint_element(constraint_query_label(search_state.params),
                              search_state.query_param,
                              classes: ["query"],
                              remove: remove_constraint_url(search_state))
  end
end

#render_filter_element(facet, values, search_state) ⇒ String

Deprecated.

Render a single facet's constraint

Parameters:

  • facet (String)

    field

  • values (Array<String>)

    selected facet values

  • search_state (Blacklight::SearchState)

    path query parameters

Returns:

  • (String)


103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'app/helpers/blacklight/render_constraints_helper_behavior.rb', line 103

def render_filter_element(facet, values, search_state)
  Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_filter_element is deprecated')
  facet_config = facet_configuration_for_field(facet)

  safe_join(Array(values).map do |val|
    next if val.blank? # skip empty string

    presenter = facet_item_presenter(facet_config, val, facet)

    Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
      render_constraint_element(presenter.field_label,
                                presenter.label,
                                remove: presenter.remove_href(search_state),
                                classes: ["filter", "filter-" + facet.parameterize])
    end
  end, "\n")
end