From 8743f7080f01deb0b84ab8dca619116a8611f3b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sat, 3 Jun 2017 10:43:12 +0200 Subject: [PATCH] map js changes --- combo/apps/maps/static/js/combo.map.js | 96 ++++++++++++++++------------------ 1 file changed, 45 insertions(+), 51 deletions(-) diff --git a/combo/apps/maps/static/js/combo.map.js b/combo/apps/maps/static/js/combo.map.js index 714b642..5059252 100644 --- a/combo/apps/maps/static/js/combo.map.js +++ b/combo/apps/maps/static/js/combo.map.js @@ -1,59 +1,53 @@ $(function() { - function render_map(container) { - $container = $(container); - $container.find('div div.combo-cell-map').each(function() { - var $map_widget = $(this); - var map_options = Object(); - var initial_zoom = parseInt($map_widget.data('init-zoom')); - if (! isNaN(initial_zoom)) { - map_options.zoom = initial_zoom; - } else { - map_options.zoom = 13; - } - var max_zoom = parseInt($map_widget.data('max_zoom')); - if (!isNaN(max_zoom)) map_options.maxZoom = max_zoom; - var min_zoom = parseInt($map_widget.data('min-zoom')); - if (!isNaN(min_zoom)) map_options.minZoom = min_zoom; - var latlng = [$map_widget.data('init-lat'), $map_widget.data('init-lng')]; - var geojson_url = $map_widget.data('geojson-url'); - var map_tile_url = $map_widget.data('tile-urltemplate'); - var map_attribution = $map_widget.data('map-attribution'); - var map = L.map(this, map_options); - var store_position_selector = $map_widget.data('store-position'); - map.setView(latlng, map_options.zoom); + function render_map(cell) { + var $map_widget = $(cell).find('div.combo-cell-map'); + var map_options = Object(); + var initial_zoom = parseInt($map_widget.data('init-zoom')); + if (! isNaN(initial_zoom)) { + map_options.zoom = initial_zoom; + } else { + map_options.zoom = 13; + } + var max_zoom = parseInt($map_widget.data('max_zoom')); + if (!isNaN(max_zoom)) map_options.maxZoom = max_zoom; + var min_zoom = parseInt($map_widget.data('min-zoom')); + if (!isNaN(min_zoom)) map_options.minZoom = min_zoom; + var latlng = [$map_widget.data('init-lat'), $map_widget.data('init-lng')]; + var geojson_url = $map_widget.data('geojson-url'); + var map_tile_url = $map_widget.data('tile-urltemplate'); + var map_attribution = $map_widget.data('map-attribution'); + var map = L.map($map_widget[0], map_options); + var store_position_selector = $map_widget.data('store-position'); + map.setView(latlng, map_options.zoom); - L.tileLayer(map_tile_url, - { - attribution: map_attribution - }).addTo(map); - if (geojson_url) { - $.getJSON(geojson_url, function(data) { - var geo_json = L.geoJson(data, { - onEachFeature: function(feature, layer) { - $map_widget.trigger('combo:map-feature-click', feature, layer); - }, - pointToLayer: function (feature, latlng) { - var markerStyles = "background-color: "+feature.properties.colour+";"; - marker = L.divIcon({iconAnchor: [0, 30], - popupAnchor: [5, -45], - html: '' - }); - return L.marker(latlng, {icon: marker}); - } - }); - var bounds = geo_json.getBounds(); - if (bounds.isValid()) { - map.fitBounds(bounds); - geo_json.addTo(map); + L.tileLayer(map_tile_url, + { + attribution: map_attribution + }).addTo(map); + if (geojson_url) { + $.getJSON(geojson_url, function(data) { + var geo_json = L.geoJson(data, { + onEachFeature: function(feature, layer) { + $(cell).trigger('combo:map-feature-click', {'feature': feature, 'layer': layer}); + }, + pointToLayer: function (feature, latlng) { + var markerStyles = "background-color: "+feature.properties.colour+";"; + marker = L.divIcon({iconAnchor: [0, 30], + popupAnchor: [5, -45], + html: '' + }); + return L.marker(latlng, {icon: marker}); } }); - } - }); + var bounds = geo_json.getBounds(); + if (bounds.isValid()) { + map.fitBounds(bounds); + geo_json.addTo(map); + } + }); + } }; - $('div.combo-cell-map').parents('div.cell').on('combo:cellform-reloaded', function() { + $('div.cell.map').each(function() { render_map(this); }); - $('div.combo-cell-map').parents('div.cell').each(function() { - $(this).trigger('combo:cellform-reloaded'); - }); }); -- 2.11.0