Module: Decidim::Proposals::MapHelper

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

Overview

This helper include some methods for rendering proposals dynamic maps.

Instance Method Summary collapse

Instance Method Details

#has_position?(proposal) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
44
45
# File '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 '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_editor(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 '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 '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