changeset 3863:dd0e5be71393

merge
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 09 Jul 2019 15:37:59 +0200
parents ecf2e5ea1464 (current diff) 704f853b9c37 (diff)
children a7abfb3d400d 36e85a74fca0
files
diffstat 1 files changed, 76 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/systemconfiguration/MorphologyClassbreaks.vue	Tue Jul 09 15:37:42 2019 +0200
+++ b/client/src/components/systemconfiguration/MorphologyClassbreaks.vue	Tue Jul 09 15:37:59 2019 +0200
@@ -33,7 +33,6 @@
               <UIBoxHeader
                 :title="colorPickerTitle"
                 icon="paint-brush"
-                :closeCallback="() => (activeColorPicker = null)"
                 :actions="[
                   {
                     callback: () => {
@@ -41,6 +40,12 @@
                       activeColorPicker = null;
                     },
                     icon: 'trash'
+                  },
+                  {
+                    callback: () => {
+                      activeColorPicker = null;
+                    },
+                    icon: 'check'
                   }
                 ]"
               />
@@ -82,6 +87,20 @@
         </button>
       </div>
     </div>
+    <div class="mb-4 px-3">
+      <a
+        @click.prevent="submitClassbreaks"
+        class="btn btn-info btn-sm text-white"
+      >
+        <translate>Send</translate>
+      </a>
+      <a
+        @click.prevent="resetClassbreaks"
+        class="btn btn-outline-info btn-sm ml-2"
+      >
+        <translate>Reset to defaults</translate>
+      </a>
+    </div>
     <div class="px-3">
       <h6 class="font-weight-bold">
         <translate>Sounding Result Comparison</translate>
@@ -114,7 +133,6 @@
               <UIBoxHeader
                 :title="colorPickerTitle"
                 icon="paint-brush"
-                :closeCallback="() => (activeColorPicker = null)"
                 :actions="[
                   {
                     callback: () => {
@@ -122,6 +140,12 @@
                       activeColorPicker = null;
                     },
                     icon: 'trash'
+                  },
+                  {
+                    callback: () => {
+                      activeColorPicker = null;
+                    },
+                    icon: 'check'
                   }
                 ]"
               />
@@ -164,10 +188,19 @@
         </button>
       </div>
     </div>
-    <div class="mt-4 px-3">
-      <a @click.prevent="submit" class="btn btn-info btn-sm text-white">
+    <div class="px-3">
+      <a
+        @click.prevent="submitClassbreaksCompare"
+        class="btn btn-info btn-sm text-white"
+      >
         <translate>Send</translate>
       </a>
+      <a
+        @click.prevent="resetClassbreaksCompare"
+        class="btn btn-outline-info btn-sm ml-2"
+      >
+        <translate>Reset to defaults</translate>
+      </a>
     </div>
   </div>
 </template>
@@ -226,6 +259,11 @@
 import { mapState } from "vuex";
 import { Chrome } from "vue-color";
 
+const DEFAULT_CLASSBREAKS =
+  "1:#ff00dd,1.5,1.7,1.9,2.1,2.3,2.5:#f25f20,2.7,2.9,3.1:#f7e40e,3.3,3.5,4:#8ad51a,4.5,5,5.5,6,6.5,7:#1414ff";
+const DEFAULT_CLASSBREAKS_COMPARE =
+  "-2:#06b100,-1.9,-1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,-1:#1cc68e,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0:#c2c2c2,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1:#fff01a,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2:#f80012";
+
 export default {
   components: {
     "chrome-picker": Chrome
@@ -257,36 +295,52 @@
     showColorPicker(id) {
       this.activeColorPicker = this.activeColorPicker === id ? null : id;
     },
-    submit() {
+    submitClassbreaks() {
       this.$store
         .dispatch("application/saveConfig", {
           morphology_classbreaks: this.morphologyClassbreaks
             .map(cb => (cb[1] === "#ffffff" ? cb[0] : cb.join(":")))
-            .join(","),
+            .join(",")
+        })
+        .finally(() => this.$store.dispatch("application/loadConfig"));
+    },
+    submitClassbreaksCompare() {
+      this.$store
+        .dispatch("application/saveConfig", {
           morphology_classbreaks_compare: this.morphologyClassbreaksCompare
             .map(cb => (cb[1] === "#ffffff" ? cb[0] : cb.join(":")))
             .join(",")
         })
         .finally(() => this.$store.dispatch("application/loadConfig"));
+    },
+    resetClassbreaks() {
+      this.morphologyClassbreaks = this.parseClassbreakString(
+        DEFAULT_CLASSBREAKS
+      );
+    },
+    resetClassbreaksCompare() {
+      this.morphologyClassbreaksCompare = this.parseClassbreakString(
+        DEFAULT_CLASSBREAKS_COMPARE
+      );
+    },
+    parseClassbreakString(str) {
+      return str
+        .split(",")
+        .map(cb => cb.split(":"))
+        .map(cb => {
+          cb[0] = Number(cb[0]);
+          cb[1] = cb[1] || "#ffffff";
+          return cb;
+        });
     }
   },
   mounted() {
-    this.morphologyClassbreaks = this.config.morphology_classbreaks
-      .split(",")
-      .map(cb => cb.split(":"))
-      .map(cb => {
-        cb[0] = Number(cb[0]);
-        cb[1] = cb[1] || "#ffffff";
-        return cb;
-      });
-    this.morphologyClassbreaksCompare = this.config.morphology_classbreaks_compare
-      .split(",")
-      .map(cb => cb.split(":"))
-      .map(cb => {
-        cb[0] = Number(cb[0]);
-        cb[1] = cb[1] || "#ffffff";
-        return cb;
-      });
+    this.morphologyClassbreaks = this.parseClassbreakString(
+      this.config.morphology_classbreaks
+    );
+    this.morphologyClassbreaksCompare = this.parseClassbreakString(
+      this.config.morphology_classbreaks_compare
+    );
 
     this.closeColorPickerListener = e => {
       // Escape