Add map locations helper. Allow to configure map marker edition on map instantiation at views.

This commit is contained in:
Senén Rodero Rodríguez
2017-08-07 11:59:25 +02:00
parent 5956207a00
commit 874a951dd2
9 changed files with 68 additions and 28 deletions

View File

@@ -8,16 +8,17 @@ App.Map =
App.Map.initializeMap map
initializeMap: (element) ->
latitude = $(element).data('latitude')
longitude = $(element).data('longitude')
zoom = $(element).data('zoom')
mapTilesProvider = $(element).data('tiles-provider')
mapAttributionSelector = $(element).data('tiles-attribution-selector')
latitude = $(element).data('marker-latitude')
longitude = $(element).data('marker-longitude')
zoom = $(element).data('map-zoom')
mapTilesProvider = $(element).data('map-tiles-provider')
mapAttributionSelector = $(element).data('map-tiles-attribution-selector')
latitudeInputSelector = $(element).data('latitude-input-selector')
longitudeInputSelector = $(element).data('longitude-input-selector')
zoomInputSelector = $(element).data('zoom-input-selector')
removeMarkerSelector = $(element).data('remove-marker-selector')
removeMarkerSelector = $(element).data('marker-remove-selector')
attribution = $(mapAttributionSelector)
editable = $(element).data('marker-editable')
marker_icon = L.divIcon(
iconSize: null
html: '<div class="map-marker"></div>')
@@ -48,11 +49,12 @@ App.Map =
latLng = new (L.LatLng)(latitude, longitude)
map = L.map(element.id).setView(latLng, zoom)
marker = L.marker(latLng, { icon: marker_icon, draggable: 'true' })
marker = L.marker(latLng, { icon: marker_icon, draggable: editable })
L.tileLayer(mapTilesProvider, attribution: attribution.html()).addTo map
marker.addTo(map)
$(removeMarkerSelector).on 'click', removeMarker
marker.on 'dragend', updateFormfields
map.on 'zoomend', updateFormfields
map.on 'click', placeMarker
if editable
$(removeMarkerSelector).on 'click', removeMarker
marker.on 'dragend', updateFormfields
map.on 'zoomend', updateFormfields
map.on 'click', placeMarker