diff client/src/store/imports.js @ 3290:3ada3d0347bd

client: define sections: duplicated and adjusted code from stretches
author Markus Kottlaender <markus@intevation.de>
date Thu, 16 May 2019 13:18:11 +0200
parents 1b8bb4f89227
children d02d4e31491b
line wrap: on
line diff
--- a/client/src/store/imports.js	Thu May 16 12:50:20 2019 +0200
+++ b/client/src/store/imports.js	Thu May 16 13:18:11 2019 +0200
@@ -33,6 +33,8 @@
     warning: false,
     stretches: [],
     selectedStretchId: null,
+    sections: [],
+    selectedSectionId: null,
     imports: [],
     reviewed: [],
     show: null,
@@ -46,19 +48,19 @@
   };
 };
 
-const getStretchFromWFS = filter => {
+const getFromWFS = (type, filter) => {
   return new Promise((resolve, reject) => {
-    var stretchesFeatureCollectionRequest = new WFS().writeGetFeature({
+    var featureCollectionRequest = new WFS().writeGetFeature({
       srsName: "EPSG:4326",
       featureNS: "gemma",
       featurePrefix: "gemma",
-      featureTypes: ["stretches_geoserver"],
+      featureTypes: [type],
       outputFormat: "application/json",
       filter: filter
     });
     HTTP.post(
       "/internal/wfs",
-      new XMLSerializer().serializeToString(stretchesFeatureCollectionRequest),
+      new XMLSerializer().serializeToString(featureCollectionRequest),
       {
         headers: {
           "X-Gemma-Auth": localStorage.getItem("token"),
@@ -132,6 +134,12 @@
     selectedStretchId: (state, id) => {
       state.selectedStretchId = id;
     },
+    setSections: (state, sections) => {
+      state.sections = sections;
+    },
+    selectedSectionId: (state, id) => {
+      state.selectedSectionId = id;
+    },
     setReviewed: (state, reviewed) => {
       state.reviewed = reviewed;
     },
@@ -194,7 +202,7 @@
   actions: {
     loadStretch(context, name) {
       return new Promise((resolve, reject) => {
-        getStretchFromWFS(equalToFilter("name", name))
+        getFromWFS("stretches_geoserver", equalToFilter("name", name))
           .then(response => {
             resolve(response);
           })
@@ -205,7 +213,7 @@
     },
     loadStretches({ commit }) {
       return new Promise((resolve, reject) => {
-        getStretchFromWFS(equalToFilter("staging_done", true))
+        getFromWFS("stretches_geoserver", equalToFilter("staging_done", true))
           .then(response => {
             if (response.data.features) {
               commit("setStretches", response.data.features);
@@ -232,6 +240,46 @@
           });
       });
     },
+    loadSection(context, name) {
+      return new Promise((resolve, reject) => {
+        getFromWFS("sections_geoserver", equalToFilter("name", name))
+          .then(response => {
+            resolve(response);
+          })
+          .catch(error => {
+            reject(error);
+          });
+      });
+    },
+    loadSections({ commit }) {
+      return new Promise((resolve, reject) => {
+        getFromWFS("sections_geoserver", equalToFilter("staging_done", true))
+          .then(response => {
+            if (response.data.features) {
+              commit("setSections", response.data.features);
+            } else {
+              commit("setSections", []);
+            }
+            resolve(response);
+          })
+          .catch(error => {
+            reject(error);
+          });
+      });
+    },
+    saveSection(context, section) {
+      return new Promise((resolve, reject) => {
+        HTTP.post("/imports/sec", section, {
+          headers: { "X-Gemma-Auth": localStorage.getItem("token") }
+        })
+          .then(response => {
+            resolve(response);
+          })
+          .catch(error => {
+            reject(error);
+          });
+      });
+    },
     getImports({ commit }, options) {
       let { filter, from, to, query } = options;
       let queryParams = "";