diff --git a/umap/static/umap/js/umap.js b/umap/static/umap/js/umap.js index 162d2763..cd4845c6 100644 --- a/umap/static/umap/js/umap.js +++ b/umap/static/umap/js/umap.js @@ -33,6 +33,7 @@ U.Map = L.Map.extend({ includes: [ControlsMixin], initialize: function (el, geojson) { + this.sync = new U.SyncEngine(this) // Locale name (pt_PT, en_US…) // To be used for Django localization if (geojson.properties.locale) L.setLocale(geojson.properties.locale) @@ -155,7 +156,6 @@ U.Map = L.Map.extend({ this.options.onLoadPanel = 'datafilters' } - this.sync = new U.SyncEngine(this) let isDirty = false // self status try { Object.defineProperty(this, 'isDirty', { diff --git a/umap/static/umap/js/umap.layer.js b/umap/static/umap/js/umap.layer.js index 544a6382..19cbba79 100644 --- a/umap/static/umap/js/umap.layer.js +++ b/umap/static/umap/js/umap.layer.js @@ -1375,6 +1375,12 @@ U.DataLayer = L.Evented.extend({ ) popupFieldset.appendChild(builder.build()) + // XXX I'm not sure **why** this is needed (as it's set during `this.initialize`) + // but apparently it's needed. + if (!U.Utils.isObject(this.options.remoteData)) { + this.options.remoteData = {} + } + const remoteDataFields = [ [ 'options.remoteData.url', diff --git a/umap/tests/integration/test_collaborative_editing.py b/umap/tests/integration/test_collaborative_editing.py index d441c68e..3f5b0c31 100644 --- a/umap/tests/integration/test_collaborative_editing.py +++ b/umap/tests/integration/test_collaborative_editing.py @@ -5,7 +5,7 @@ from time import sleep from playwright.sync_api import expect -from umap.models import DataLayer, Map +from umap.models import DataLayer from ..base import DataLayerFactory, MapFactory