From cb638910ce239813d1e24115756cc5c8ca1d37be Mon Sep 17 00:00:00 2001 From: "Lukas Rieger (Blue)" Date: Sun, 18 Jun 2023 17:15:44 +0200 Subject: [PATCH] Remember hide/show status of marker-sets --- .../webapp/src/components/Menu/MarkerSet.vue | 1 + .../webapp/src/js/markers/MarkerSet.js | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/BlueMapCommon/webapp/src/components/Menu/MarkerSet.vue b/BlueMapCommon/webapp/src/components/Menu/MarkerSet.vue index 82fd0435..cbe4f507 100644 --- a/BlueMapCommon/webapp/src/components/Menu/MarkerSet.vue +++ b/BlueMapCommon/webapp/src/components/Menu/MarkerSet.vue @@ -65,6 +65,7 @@ export default { if (this.markerSet.toggleable) { // eslint-disable-next-line vue/no-mutating-props this.markerSet.visible = !this.markerSet.visible + this.markerSet.saveState(); } }, more(event) { diff --git a/BlueMapCommon/webapp/src/js/markers/MarkerSet.js b/BlueMapCommon/webapp/src/js/markers/MarkerSet.js index 064d9e0b..b1f9c196 100644 --- a/BlueMapCommon/webapp/src/js/markers/MarkerSet.js +++ b/BlueMapCommon/webapp/src/js/markers/MarkerSet.js @@ -30,6 +30,7 @@ import {LineMarker} from "./LineMarker"; import {HtmlMarker} from "./HtmlMarker"; import {PoiMarker} from "./PoiMarker"; import {reactive} from "vue"; +import {getLocalStorage, setLocalStorage} from "../Utils"; export class MarkerSet extends Scene { @@ -58,6 +59,9 @@ export class MarkerSet extends Scene { return this.toggleable || this.markers.filter(marker => marker.listed).length > 0 || this.markerSets.filter(markerSet => markerSet.listed).length > 0 + }, + saveState: () => { + setLocalStorage("markerset-" + this.data.id + "-visible", this.visible); } }); @@ -65,6 +69,15 @@ export class MarkerSet extends Scene { get() { return this.data.visible }, set(value) { this.data.visible = value } }); + + if (this.data.toggleable) { + let storedVisible = getLocalStorage("markerset-" + this.data.id + "-visible"); + if (storedVisible !== undefined) { + this.visible = !!storedVisible; + } else if (this.data.defaultHide) { + this.visible = false; + } + } } updateFromData(data) { @@ -112,10 +125,6 @@ export class MarkerSet extends Scene { if (!markerSet) { markerSet = new MarkerSet(markerSetId); this.add(markerSet); - - if (data.defaultHidden) { - markerSet.visible = false; - } } // update