Persist layer selection with local storage (#146)

This commit is contained in:
Norbert Renner 2019-03-28 11:40:50 +01:00
parent 98f80d90ca
commit dbc7fce91d
2 changed files with 49 additions and 0 deletions

View file

@ -18,6 +18,29 @@ BR.LayersConfig = L.Class.extend({
this._addLeafletProvidersLayers();
this._customizeLayers();
this.loadDefaultLayers();
},
loadDefaultLayers: function() {
if (BR.Util.localStorageAvailable()) {
var item = localStorage.getItem("map/defaultLayers");
if (item) {
var defaultLayers = JSON.parse(item);
this.defaultBaseLayers = defaultLayers.baseLayers;
this.defaultOverlays = defaultLayers.overlays;
}
}
},
storeDefaultLayers: function (baseLayers, overlays) {
if (BR.Util.localStorageAvailable()) {
var defaultLayers = {
baseLayers: baseLayers,
overlays: overlays
};
localStorage.setItem("map/defaultLayers", JSON.stringify(defaultLayers));
}
},
_addLeafletProvidersLayers: function () {
@ -230,6 +253,8 @@ BR.LayersConfig = L.Class.extend({
}
layer.getAttribution = getAttribution;
layer.id = props.id;
return layer;
}
});

View file

@ -118,6 +118,8 @@ BR.LayersTab = L.Control.Layers.extend({
} else {
this.addBaseLayer(layer, name);
}
this.storeDefaultLayers();
};
var onUncheckNode = function (e, data) {
@ -132,6 +134,8 @@ BR.LayersTab = L.Control.Layers.extend({
this.addFirstLayer();
}
}
this.storeDefaultLayers();
};
$('#optional-layers-tree')
@ -263,6 +267,26 @@ BR.LayersTab = L.Control.Layers.extend({
return data;
},
storeDefaultLayers: function () {
var baseLayers = [];
var overlays = [];
for (var i = 0; i < this._layers.length; i++) {
var obj = this._layers[i];
// id set in LayersConfig.createLayer
var id = obj.layer.id;
if (id) {
if (obj.overlay) {
overlays.push(id);
} else {
baseLayers.push(id);
}
}
}
this.layersConfig.storeDefaultLayers(baseLayers, overlays);
},
addFirstLayer: function () {
for (var i = 0; i < this._layers.length; i++) {
var obj = this._layers[i];