From f54992c0e524be23009d448114348c35bf3f5469 Mon Sep 17 00:00:00 2001 From: Yohan Boniface Date: Mon, 11 Dec 2023 10:36:39 +0100 Subject: [PATCH] Make sure DataLayer._dataloaded is set only once all data is imported When DataLayer._dataloaded is set, DataLayer.addLayer will send 'datachanged' event (for once for each feature). When the data browser panel is open, the browser is listening to 'datachanged' to rebuild itself. Not sure this is the real final fix, but that may need more refactoring, so I think this approach is already a better situation than the current. fix #1457 --- umap/static/umap/js/umap.layer.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/umap/static/umap/js/umap.layer.js b/umap/static/umap/js/umap.layer.js index ce3d9199c..b55cdb474 100644 --- a/umap/static/umap/js/umap.layer.js +++ b/umap/static/umap/js/umap.layer.js @@ -665,7 +665,6 @@ L.U.DataLayer = L.Evented.extend({ this.backupOptions() this.fire('loaded') this._loading = false - this._dataloaded = true }, context: this, }) @@ -674,6 +673,7 @@ L.U.DataLayer = L.Evented.extend({ fromGeoJSON: function (geojson) { this.addData(geojson) this._geojson = geojson + this._dataloaded = true this.fire('dataloaded') this.fire('datachanged') }, @@ -730,7 +730,6 @@ L.U.DataLayer = L.Evented.extend({ verb: 'GET', callback: (raw) => { this.clear() - this._dataloaded = true this.rawToGeoJSON(raw, this.options.remoteData.format, (geojson) => this.fromGeoJSON(geojson) )