Module: Decidim::ScopesHelper
- Includes:
- DecidimFormHelper, TranslatableAttributes
- Included in:
- ApplicationHelper, ViewModel
- Defined in:
- app/helpers/decidim/scopes_helper.rb
Overview
A Helper to render scopes, including a global scope, for forms.
Defined Under Namespace
Classes: Option
Instance Method Summary collapse
-
#has_visible_scopes?(resource) ⇒ Boolean
Checks if the resource should show its scope or not.
-
#scope_name_for_picker(scope, global_name) ⇒ Object
Retrieves the translated name and type for an scope.
-
#scopes_picker_field(form, name, root: false, options: {}) ⇒ Object
Renders a scopes picker field in a form.
-
#scopes_picker_filter(form, name) ⇒ Object
Renders a scopes picker field in a filter form.
-
#scopes_picker_tag(name, value, options = {}) ⇒ Object
Renders a scopes picker field in a form, not linked to a specific model.
Methods included from DecidimFormHelper
#base_error_messages, #decidim_form_for, #decidim_form_slug_url, #editor_field_tag, #form_field_has_error?, #foundation_datepicker_locale_tag, #name_with_locale, #scopes_picker_field_tag, #tab_element_class_for, #translated_field_tag
Instance Method Details
#has_visible_scopes?(resource) ⇒ Boolean
Checks if the resource should show its scope or not. resource - the resource to analize
Returns boolean.
15 16 17 18 19 |
# File 'app/helpers/decidim/scopes_helper.rb', line 15 def has_visible_scopes?(resource) resource.participatory_space.scopes_enabled? && resource.scope.present? && resource.participatory_space.scope != resource.scope end |
#scope_name_for_picker(scope, global_name) ⇒ Object
Retrieves the translated name and type for an scope. scope - a Decidim::Scope global_name - text to use when scope is nil
Returns a string
26 27 28 29 30 31 32 |
# File 'app/helpers/decidim/scopes_helper.rb', line 26 def scope_name_for_picker(scope, global_name) return global_name unless scope name = translated_attribute(scope.name) name << " (#{translated_attribute(scope.scope_type.name)})" if scope.scope_type name end |
#scopes_picker_field(form, name, root: false, options: {}) ⇒ Object
Renders a scopes picker field in a form. form - FormBuilder object name - attribute name
Returns nothing.
39 40 41 42 43 44 45 |
# File 'app/helpers/decidim/scopes_helper.rb', line 39 def scopes_picker_field(form, name, root: false, options: {}) root = current_participatory_space.scope if root == false form.scopes_picker name, do |scope| { url: decidim.scopes_picker_path(root: root, current: scope&.id, field: form.label_for(name)), text: scope_name_for_picker(scope, I18n.t("decidim.scopes.global")) } end end |
#scopes_picker_filter(form, name) ⇒ Object
Renders a scopes picker field in a filter form. form - FilterFormBuilder object name - attribute name
Returns nothing.
67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/helpers/decidim/scopes_helper.rb', line 67 def scopes_picker_filter(form, name) form.scopes_picker name, multiple: true, legend_title: I18n.t("decidim.scopes.scopes"), label: false do |scope| { url: decidim.scopes_picker_path( root: try(:current_participatory_space)&.scope, current: scope&.id, title: I18n.t("decidim.scopes.prompt"), global_value: "global" ), text: scope_name_for_picker(scope, I18n.t("decidim.scopes.prompt")) } end end |
#scopes_picker_tag(name, value, options = {}) ⇒ Object
Renders a scopes picker field in a form, not linked to a specific model. name - name for the input value - value for the input
Returns nothing.
52 53 54 55 56 57 58 59 60 |
# File 'app/helpers/decidim/scopes_helper.rb', line 52 def scopes_picker_tag(name, value, = {}) root = try(:current_participatory_space)&.scope field = [:field] || name scopes_picker_field_tag name, value, id: [:id] do |scope| { url: decidim.scopes_picker_path(root: root, current: scope&.id, field: field), text: scope_name_for_picker(scope, I18n.t("decidim.scopes.global")) } end end |