maps: trigger map-markers-ready event when all layers are loaded (#42718)

This commit is contained in:
Frédéric Péters 2020-05-11 15:14:08 +02:00
parent 0633dac752
commit cfcd6bf423
1 changed files with 22 additions and 2 deletions

View File

@ -7,7 +7,8 @@ $(function() {
var cell = $map_widget.parents('div.cell')[0];
var geojson_url = geojson_data.url;
$.getJSON(geojson_url, function(data) {
$.getJSON(geojson_url).done(
function(data) {
var geo_json = L.geoJson(data, {
onEachFeature: function(feature, layer) {
$(cell).trigger('combo:map-feature-prepare', {'feature': feature, 'layer': layer});
@ -73,8 +74,26 @@ $(function() {
if (callback) {
callback(geo_json);
}
$(cell).trigger('combo:map-markers-ready');
geojson_data.status = 'loaded';
}).fail(function(jqxhr, textStatus, error) {
geojson_data.status = 'error';
}).always(function() {
map.trigger_markers_if_ready();
});
},
trigger_markers_if_ready: function() {
var map = this;
var $map_widget = $(map.getContainer());
var map_id = $map_widget.data('cell-id');
var cell = $map_widget.parents('div.cell')[0];
var geojson_layers = window['geojson_'+map_id];
var loading = 0;
for (var i=0; i<geojson_layers.length; i++) {
if (geojson_layers[i].status == 'loading') loading++;
}
if (loading == 0) {
$(cell).trigger('combo:map-markers-ready');
}
}
});
@ -194,6 +213,7 @@ $(function() {
var geojson_layers = window['geojson_'+map_id];
if (geojson_layers.length) {
$.each(geojson_layers, function(idx, geojson_data) {
geojson_data.status = 'loading';
map.add_geojson_layer(function(geo_json) {
var bounds = geo_json.getBounds();
if (bounds.isValid()) {