changeset 3409:c0f5f62343c9

client: import review: refresh map layers after accepting/declining imports
author Markus Kottlaender <markus@intevation.de>
date Thu, 23 May 2019 14:47:33 +0200
parents a26c1d745fc3
children e5bc8f4924cb 5e284f39a081
files client/src/components/importoverview/ImportOverview.vue client/src/components/layers/Layers.vue client/src/store/map.js
diffstat 3 files changed, 18 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/importoverview/ImportOverview.vue	Thu May 23 13:39:04 2019 +0200
+++ b/client/src/components/importoverview/ImportOverview.vue	Thu May 23 14:47:33 2019 +0200
@@ -388,6 +388,7 @@
               .then(response => {
                 this.loadLogs();
                 this.$store.commit("imports/setReviewed", []);
+                this.$store.dispatch("map/refreshLayers");
                 const messages = response.data
                   .map(x => {
                     if (x.message) return x.message;
--- a/client/src/components/layers/Layers.vue	Thu May 23 13:39:04 2019 +0200
+++ b/client/src/components/layers/Layers.vue	Thu May 23 14:47:33 2019 +0200
@@ -58,7 +58,6 @@
  * Markus Kottländer <markus.kottlaender@intevation.de>
  */
 import { mapState } from "vuex";
-import { Vector as VectorLayer } from "ol/layer";
 
 export default {
   components: {
@@ -86,19 +85,7 @@
       this.$store.commit("application/showLayers", false);
     },
     refreshLayers() {
-      this.openLayersMaps.forEach(map => {
-        let layers = map.getLayers().getArray();
-        for (let i = 0; i < layers.length; i++) {
-          let layer = layers[i];
-          if (
-            layer instanceof VectorLayer &&
-            layer.get("source").loader_.name != "VOID"
-          ) {
-            layer.getSource().clear(true);
-            layer.getSource().refresh({ force: true });
-          }
-        }
-      });
+      this.$store.dispatch("map/refreshLayers");
     }
   }
 };
--- a/client/src/store/map.js	Thu May 23 13:39:04 2019 +0200
+++ b/client/src/store/map.js	Thu May 23 14:47:33 2019 +0200
@@ -24,6 +24,7 @@
 import { HTTP } from "@/lib/http";
 import Feature from "ol/Feature";
 import Point from "ol/geom/Point";
+import { Vector as VectorLayer } from "ol/layer";
 import { toLonLat } from "ol/proj";
 
 // initial state
@@ -539,6 +540,21 @@
         }
       });
     },
+    refreshLayers({ state }) {
+      state.openLayersMaps.forEach(map => {
+        let layers = map.getLayers().getArray();
+        for (let i = 0; i < layers.length; i++) {
+          let layer = layers[i];
+          if (
+            layer instanceof VectorLayer &&
+            layer.get("source").loader_.name != "VOID"
+          ) {
+            layer.getSource().clear(true);
+            layer.getSource().refresh({ force: true });
+          }
+        }
+      });
+    },
     moveToBoundingBox(
       { state },
       { boundingBox, zoom, preventZoomOut, duration }