Module: Decidim::TaxonomiesHelper
- Includes:
- DecidimFormHelper, TranslatableAttributes
- Defined in:
- decidim-core/app/helpers/decidim/taxonomies_helper.rb
Overview
A Helper to render taxonomies for forms.
Instance Method Summary collapse
- #filter_taxonomy_items_select_field(form, name, filter, options = {}) ⇒ Object
- #taxonomy_items_options_for_filter(filter) ⇒ Object
- #taxonomy_items_options_for_taxonomies_tree(taxonomies_tree, first_parent_level = 1) ⇒ Object
Methods included from TranslatableAttributes
#attachment?, #default_locale?
Methods included from DecidimFormHelper
#areas_for_select, #base_error_messages, #decidim_form_for, #decidim_form_slug_url, #editor_field_tag, #form_field_has_error?, #form_required_explanation, #name_with_locale, #tab_element_class_for, #translated_field_tag
Instance Method Details
#filter_taxonomy_items_select_field(form, name, filter, options = {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'decidim-core/app/helpers/decidim/taxonomies_helper.rb', line 9 def filter_taxonomy_items_select_field(form, name, filter, = {}) label = decidim_sanitize_translated(filter.name) = .merge(include_blank: I18n.t("decidim.taxonomies.prompt")) unless .has_key?(:include_blank) = .merge(label:) unless .has_key?(:label) form.select( name, (filter), , { name: "#{form.object_name}[#{name}][]", id: "#{name}-#{filter.id}" } ) end |
#taxonomy_items_options_for_filter(filter) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'decidim-core/app/helpers/decidim/taxonomies_helper.rb', line 21 def (filter) @taxonomy_items_options_for_filter ||= {} @taxonomy_items_options_for_filter[filter.id] ||= begin min_parent_count = filter.taxonomies.values.min_by { |item| item[:taxonomy].parent_ids.count } first_parent_level = (min_parent_count && min_parent_count[:taxonomy].parent_ids.count) || 1 (filter.taxonomies, first_parent_level) end end |
#taxonomy_items_options_for_taxonomies_tree(taxonomies_tree, first_parent_level = 1) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'decidim-core/app/helpers/decidim/taxonomies_helper.rb', line 30 def (taxonomies_tree, first_parent_level = 1) = [] taxonomies_tree.each do |id, item| name = " #{" " * 4 * (item[:taxonomy].parent_ids.count - first_parent_level)} #{decidim_sanitize_translated(item[:taxonomy].name)}".html_safe .append([name, id]) .concat((item[:children], first_parent_level)) if item[:children].any? end end |