new map on budget homepage

This commit is contained in:
Vicente Mendoza
2018-01-17 13:15:35 +01:00
parent a215c9c603
commit 91e10e1897
4 changed files with 28 additions and 12 deletions

View File

@@ -24,6 +24,7 @@ App.Map =
longitudeInputSelector = $(element).data('longitude-input-selector')
zoomInputSelector = $(element).data('zoom-input-selector')
removeMarkerSelector = $(element).data('marker-remove-selector')
addMarkerInvestemts = $(element).data('marker-investments-coordenates')
editable = $(element).data('marker-editable')
marker = null;
markerIcon = L.divIcon(
@@ -69,11 +70,15 @@ App.Map =
$(zoomInputSelector).val ''
return
contentPopup = (title,investment,budget) ->
content = "<a href='/budgets/#{budget}/investments/#{investment}'>#{title}</a>"
return content
mapCenterLatLng = new (L.LatLng)(mapCenterLatitude, mapCenterLongitude)
map = L.map(element.id).setView(mapCenterLatLng, zoom)
L.tileLayer(mapTilesProvider, attribution: mapAttribution).addTo map
if markerLatitude && markerLongitude
if markerLatitude && markerLongitude && !addMarkerInvestemts
marker = createMarker(markerLatitude, markerLongitude)
if editable
@@ -81,6 +86,11 @@ App.Map =
map.on 'zoomend', updateFormfields
map.on 'click', moveOrPlaceMarker
if addMarkerInvestemts
for i in addMarkerInvestemts
add_marker=createMarker(i.lat , i.long)
add_marker.bindPopup(contentPopup(i.investment_title, i.investment_id, i.budget_id))
toogleMap: ->
$('.map').toggle()
$('.js-location-map-remove-marker').toggle()
$('.js-location-map-remove-marker').toggle()

View File

@@ -15,6 +15,8 @@ class BudgetsController < ApplicationController
def index
@budgets = @budgets.order(:created_at)
budgets_map_locations = Budget.where.not(phase: 'drafting').map{ |budget| budget.investments.map{|investment| investment.map_location}}.flatten.compact
@budgets_coordenates = budgets_map_locations.map{ |ml| {lat: ml.latitude, long: ml.longitude, investment_title: ml.investment.title , investment_id: ml.investment.id, budget_id: ml.investment.budget.id}}
end
end

View File

@@ -24,11 +24,12 @@ module MapLocationsHelper
"remove-marker-link-#{dom_id(map_location)}"
end
def render_map(map_location, parent_class, editable, remove_marker_label)
def render_map(map_location, parent_class, editable, remove_marker_label,investments_coordenates=nil)
map_location = MapLocation.new if map_location.nil?
map = content_tag_for :div,
map_location,
class: "map",
data: prepare_map_settings(map_location, editable, parent_class)
data: prepare_map_settings(map_location, editable, parent_class, investments_coordenates)
map += map_location_remove_marker(map_location, remove_marker_label) if editable
map
end
@@ -44,23 +45,26 @@ module MapLocationsHelper
end
end
private
def prepare_map_settings(map_location, editable, parent_class)
def prepare_map_settings(map_location, editable, parent_class,marker_investments_coordenates=nil)
options = {
map: "",
map_center_latitude: map_location_latitude(map_location),
map_center_longitude: map_location_longitude(map_location),
map_zoom: map_location_zoom(map_location),
map_tiles_provider: Rails.application.secrets.map_tiles_provider,
map_tiles_provider_attribution: Rails.application.secrets.map_tiles_provider_attribution,
marker_editable: editable,
marker_latitude: map_location.latitude,
marker_longitude: map_location.longitude,
map_center_latitude: map_location_latitude(map_location),
map_center_longitude: map_location_longitude(map_location),
map_zoom: map_location_zoom(map_location),
marker_latitude: map_location_latitude(map_location.latitude),
marker_longitude: map_location_longitude(map_location.longitude),
marker_investments_coordenates: marker_investments_coordenates,
marker_remove_selector: "##{map_location_remove_marker_link_id(map_location)}",
latitude_input_selector: "##{map_location_input_id(parent_class, 'latitude')}",
longitude_input_selector: "##{map_location_input_id(parent_class, 'longitude')}",
zoom_input_selector: "##{map_location_input_id(parent_class, 'zoom')}"
zoom_input_selector: "##{map_location_input_id(parent_class, 'zoom')}",
marker_investments_coordenates: marker_investments_coordenates
}
end

View File

@@ -4,7 +4,7 @@
<% end %>
<%= render "shared/section_header", i18n_namespace: "budgets.index.section_header", image: "budgets" %>
<%= render_map(nil, "budgets",false,nil, @budgets_coordenates) %>
<div class="row margin-top">
<div class="small-12 medium-9 column">
<table>