Module: Decidim::Proposals::MapHelper

Includes:
ApplicationHelper
Included in:
ApplicationHelper
Defined in:
decidim-proposals/app/helpers/decidim/proposals/map_helper.rb

Overview

This helper include some methods for rendering proposals dynamic maps.

Instance Method Summary collapse

Methods included from ApplicationHelper

#cell, #edit_link, #extra_admin_link, #html_truncate, #present, #resolve_presenter_class, #step_cta_url

Methods included from CacheHelper

#cache

Methods included from AmendmentsHelper

#accept_and_reject_buttons_for, #action_button_card_for, #allowed_to_accept_and_reject?, #allowed_to_promote?, #amend_button_for, #amenders_list_for, #amendments_enabled?, #amendments_for, #amendments_form_field_for, #amendments_form_fields_label, #amendments_form_fields_value, #can_participate_in_private_space?, #can_react_to_emendation?, #emendation_actions_for, #emendation_announcement_for, #promote_button_for, #render_emendation_body

Methods included from RichTextEditorHelper

included, #text_editor_for

Methods included from ContextualHelpHelper

#floating_help

Methods included from ScopesHelper

#has_visible_scopes?, #scope_name_for_picker, #scopes_picker_field, #scopes_picker_filter, #scopes_picker_tag

Methods included from TranslatableAttributes

#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, #scopes_picker_field_tag, #tab_element_class_for, #translated_field_tag

Methods included from OmniauthHelper

#normalize_provider_name, #oauth_icon, #provider_name

Instance Method Details

#has_position?(proposal) ⇒ Boolean

Returns:

  • (Boolean)

41
42
43
44
45
# File 'decidim-proposals/app/helpers/decidim/proposals/map_helper.rb', line 41

def has_position?(proposal)
  return if proposal.address.blank?

  proposal.latitude.present? && proposal.longitude.present?
end

#proposal_data_for_map(proposal) ⇒ Object


17
18
19
20
21
22
23
24
25
26
# File 'decidim-proposals/app/helpers/decidim/proposals/map_helper.rb', line 17

def proposal_data_for_map(proposal)
  proposal
    .slice(:latitude, :longitude, :address)
    .merge(
      title: decidim_html_escape(present(proposal).title),
      body: html_truncate(decidim_sanitize(present(proposal).body), length: 100),
      icon: icon("proposals", width: 40, height: 70, remove_icon_class: true),
      link: proposal_path(proposal)
    )
end

#proposal_preview_data_for_map(proposal) ⇒ Object


28
29
30
31
32
33
34
35
36
37
38
39
# File 'decidim-proposals/app/helpers/decidim/proposals/map_helper.rb', line 28

def proposal_preview_data_for_map(proposal)
  {
    type: "drag-marker",
    marker: proposal.slice(
      :latitude,
      :longitude,
      :address
    ).merge(
      icon: icon("proposals", width: 40, height: 70, remove_icon_class: true)
    )
  }
end

#proposals_data_for_map(geocoded_proposals) ⇒ Object

Serialize a collection of geocoded proposals to be used by the dynamic map component

geocoded_proposals - A collection of geocoded proposals


11
12
13
14
15
# File 'decidim-proposals/app/helpers/decidim/proposals/map_helper.rb', line 11

def proposals_data_for_map(geocoded_proposals)
  geocoded_proposals.map do |proposal|
    proposal_data_for_map(proposal)
  end
end