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)


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

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
# 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),
      link: proposal_path(proposal),
      items: cell("decidim/proposals/proposal_metadata", proposal).send(:proposal_items_for_map).to_json
    )
end

#proposal_preview_data_for_map(proposal) ⇒ Object



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

def proposal_preview_data_for_map(proposal)
  {
    type: "drag-marker",
    marker: proposal.slice(
      :latitude,
      :longitude,
      :address
    ).merge(
      icon: icon("chat-new-line", 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