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
- #has_position?(proposal) ⇒ Boolean
- #proposal_data_for_map(proposal) ⇒ Object
- #proposal_preview_data_for_map(proposal) ⇒ Object
-
#proposals_data_for_map(geocoded_proposals) ⇒ Object
Serialize a collection of geocoded proposals to be used by the dynamic map component.
Instance Method Details
#has_position?(proposal) ⇒ 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 |