# HG changeset patch # User Thomas Junk # Date 1566985364 -7200 # Node ID dd8ec623b9698ff7fedb6fc66df98b1cb8f290ea # Parent 315474a66589bae040fc7a43d0ceb7be94542389 LegendElement: refresh legend elements for vector layers diff -r 315474a66589 -r dd8ec623b969 client/src/components/layers/LegendElement.vue --- a/client/src/components/layers/LegendElement.vue Wed Aug 28 11:06:47 2019 +0200 +++ b/client/src/components/layers/LegendElement.vue Wed Aug 28 11:42:44 2019 +0200 @@ -34,7 +34,7 @@ }; }, computed: { - ...mapState("map", ["layers"]), + ...mapState("map", ["layers", "ongoingRefresh"]), id() { return ( "legendelement-" + @@ -51,13 +51,16 @@ } }, watch: { + ongoingRefresh() { + if (this.ongoingRefresh) return; + if (this.layer.getType() == "VECTOR") { + this.recreateLayers(); + } + }, mstyle(newStyle, oldStyle) { // only recreate if there already was a style before if (oldStyle) { - let vector = this.createVectorLayer(); - - this.myMap.removeLayer(this.myMap.getLayers()[0]); - this.myMap.addLayer(vector); + this.recreateLayers(); } } }, @@ -97,6 +100,12 @@ } }, methods: { + recreateLayers() { + let vector = this.createVectorLayer(); + + this.myMap.removeLayer(this.myMap.getLayers()[0]); + this.myMap.addLayer(vector); + }, initMap() { let vector = this.createVectorLayer();