diff client/src/store/bottlenecks.js @ 1372:553aadd97087

new cross profile workflow (WIP) Needs fixing of some bugs and not so nice looks.
author Markus Kottlaender <markus@intevation.de>
date Tue, 27 Nov 2018 12:59:26 +0100
parents d0c4d17ee7ab
children 752b6bb2bee5
line wrap: on
line diff
--- a/client/src/store/bottlenecks.js	Tue Nov 27 12:49:53 2018 +0100
+++ b/client/src/store/bottlenecks.js	Tue Nov 27 12:59:26 2018 +0100
@@ -22,7 +22,8 @@
     bottlenecks: [],
     selectedBottleneck: null,
     surveys: [],
-    selectedSurvey: null
+    selectedSurvey: null,
+    surveysLoading: false
   };
 };
 
@@ -42,6 +43,9 @@
     },
     setSelectedSurvey(state, survey) {
       state.selectedSurvey = survey;
+    },
+    surveysLoading: (state, loading) => {
+      state.surveysLoading = loading;
     }
   },
   actions: {
@@ -50,6 +54,9 @@
         commit("setSelectedSurvey", null);
         commit("fairwayprofile/clearCurrentProfile", null, { root: true });
       }
+      if (name) {
+        commit("application/showProfiles", true, { root: true });
+      }
       commit("setSelectedBottleneck", name);
       dispatch("querySurveys", name);
     },
@@ -79,6 +86,7 @@
     },
     querySurveys({ commit }, name) {
       if (name) {
+        commit("surveysLoading", true);
         HTTP.get("/surveys/" + name, {
           headers: {
             "X-Gemma-Auth": localStorage.getItem("token"),
@@ -86,16 +94,22 @@
           }
         })
           .then(response => {
-            commit("setSurveys", response.data.surveys);
+            const surveys = response.data.surveys.sort(
+              (a, b) => (a.date_info < b.date_info ? 1 : -1)
+            );
+            commit("setSelectedSurvey", surveys[0]);
+            commit("setSurveys", surveys);
           })
           .catch(error => {
             commit("setSurveys", []);
+            commit("setSelectedSurvey", null);
             const { status, data } = error.response;
             displayError({
               title: "Backend Error",
               message: `${status}: ${data.message || data}`
             });
-          });
+          })
+          .finally(() => commit("surveysLoading", false));
       } else {
         commit("setSurveys", []);
       }