Module: Decidim::SearchesHelper
- Included in:
- CardMCell, SearchResultsCell, SearchResultsSectionCell
- Defined in:
- app/helpers/decidim/searches_helper.rb
Overview
A Helper to render and link to searchables.
Instance Method Summary collapse
-
#main_search_path ⇒ Object
Generates the path to the main results page (the one without any filter active), only the ‘term` one.
-
#search_path_by(resource_type: nil, space_state: nil) ⇒ Object
Generates a link to filter the current search by the given type.
-
#search_path_by_resource_type(resource_type) ⇒ Object
Generates the path to filter by resource type, considering the other filters.
-
#search_path_by_state_link(state) ⇒ Object
Generates the path and link to filter by space state, taking into account the other filters applied.
-
#searchable_resource_human_name(resource, count: 5) ⇒ Object
Renders the human name of the given class name.
Instance Method Details
#main_search_path ⇒ Object
Generates the path to the main results page (the one without any filter active), only the ‘term` one.
41 42 43 |
# File 'app/helpers/decidim/searches_helper.rb', line 41 def main_search_path search_path_by end |
#search_path_by(resource_type: nil, space_state: nil) ⇒ Object
Generates a link to filter the current search by the given type. If no type is given, it generates a link to the main results page.
resource_type - An optional String with the name of the model class to filter space_state - An optional String with the name of the state of the space
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'app/helpers/decidim/searches_helper.rb', line 26 def search_path_by(resource_type: nil, space_state: nil) new_params = { utf8: params[:utf8], filter: { decidim_scope_id: params.dig(:filter, :decidim_scope_id), term: params[:term] || params.dig(:filter, :term) } } new_params[:filter][:resource_type] = resource_type if resource_type.present? new_params[:filter][:space_state] = space_state if space_state.present? decidim.search_path(new_params) end |
#search_path_by_resource_type(resource_type) ⇒ Object
Generates the path to filter by resource type, considering the other filters.
46 47 48 |
# File 'app/helpers/decidim/searches_helper.rb', line 46 def search_path_by_resource_type(resource_type) search_path_by(space_state: params.dig(:filter, :space_state), resource_type: resource_type) end |
#search_path_by_state_link(state) ⇒ Object
Generates the path and link to filter by space state, taking into account the other filters applied.
52 53 54 55 56 57 58 59 |
# File 'app/helpers/decidim/searches_helper.rb', line 52 def search_path_by_state_link(state) path = search_path_by(resource_type: params.dig(:filter, :resource_type), space_state: state) is_active = params.dig(:filter, :space_state).to_s == state.to_s link_to path, class: "order-by__tab#{" is-active" if is_active}" do content_tag(:strong, t(state || :all, scope: "decidim.searches.filters.state")) end end |
#searchable_resource_human_name(resource, count: 5) ⇒ Object
Renders the human name of the given class name.
klass_name - a String representing the class name of the resource to render count - (optional) the number of resources so that the I18n backend
can decide to translate into singluar or plural form.
11 12 13 14 15 16 17 18 19 |
# File 'app/helpers/decidim/searches_helper.rb', line 11 def searchable_resource_human_name(resource, count: 5) resource = if resource.is_a?(String) resource.constantize else resource end resource.model_name.human(count: count) end |