changeset 864:2079fabbe6dd

client: add fill-colour setting to systemconfig * Add simple headlines to show what we are setting. * Add a section to select a colour with the vue-color chrome-picker. * yarn add vue-color.
author Bernhard Reiter <bernhard@intevation.de>
date Fri, 28 Sep 2018 21:39:01 +0200
parents d1863e91b039
children f868570da418
files client/package.json client/src/systemconfiguration/systemconfiguration.vue client/yarn.lock
diffstat 3 files changed, 88 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/client/package.json	Fri Sep 28 20:58:38 2018 +0200
+++ b/client/package.json	Fri Sep 28 21:39:01 2018 +0200
@@ -28,6 +28,7 @@
     "purgecss-webpack-plugin": "^1.2.1",
     "v-tooltip": "^2.0.0-rc.33",
     "vue": "^2.5.16",
+    "vue-color": "^2.6.0",
     "vue-highlightjs": "^1.3.3",
     "vue-router": "^3.0.1",
     "vuex": "^3.0.1"
--- a/client/src/systemconfiguration/systemconfiguration.vue	Fri Sep 28 20:58:38 2018 +0200
+++ b/client/src/systemconfiguration/systemconfiguration.vue	Fri Sep 28 21:39:01 2018 +0200
@@ -1,31 +1,34 @@
 <template>
-    <div class="d-flex flex-row">
-        <div class="card sysconfig">
-            <div class="card-header shadow-sm text-white bg-info mb-6">
-                Systemconfiguration
+  <div class="d-flex flex-row">
+    <div class="card sysconfig">
+      <div class="card-header shadow-sm text-white bg-info mb-6">
+          Systemconfiguration
+      </div>
+      <div class="card-body">
+        <h4>Bottleneck Areas stroke-color</h4>
+        <div class="inputs form-group row">
+            <div class="col-2">
+                <label for="r"></label>R<input class="form-control form-control-sm" v-model="r" id="r" placeholder="255">
             </div>
-            <div class="card-body">
-                <div class="inputs form-group row">
+                <div class="col-2">
+                    <label for="g"></label>G<input class="form-control form-control-sm" v-model.number="g" type="text" id="g" placeholder="255">
+            </div>
                     <div class="col-2">
-                        <label for="r"></label>R<input class="form-control form-control-sm" v-model="r" id="r" placeholder="255">
-                    </div>
+                        <label for="b"></label>B<input class="form-control form-control-sm" v-model.number="b" type="text" id="b" placeholder="255">
+            </div>
                         <div class="col-2">
-                            <label for="g"></label>G<input class="form-control form-control-sm" v-model.number="g" type="text" id="g" placeholder="255">
-                    </div>
-                            <div class="col-2">
-                                <label for="b"></label>B<input class="form-control form-control-sm" v-model.number="b" type="text" id="b" placeholder="255">
-                    </div>
-                                <div class="col-2">
 
-                                    <label for="a"></label>A<input class="form-control form-control-sm" v-model.number="a" type="text" id="a" placeholder="1.0">
-                    </div>
-                                </div>
-                                <div class="sendbutton">
-                                    <a @click="submit" class="btn btn-info">Send</a>
-                                </div>
-                            </div>
+                            <label for="a"></label>A<input class="form-control form-control-sm" v-model.number="a" type="text" id="a" placeholder="1.0">
+            </div>
                         </div>
-                    </div>
+                        <div class="sendbutton">
+                            <a @click.prevent="submit" class="btn btn-info">Send</a>
+        </div>
+        <h4>Bottleneck Areas fill-color</h4>
+        <chrome-picker v-model="fillColor" />
+      </div> <!-- card-body -->
+    </div>
+  </div>
 </template>
 
 <style lang="scss">
@@ -44,11 +47,14 @@
   margin-right: auto;
   width: 60vw;
   max-width: 500px;
-  height: 40vh;
+  mind-heigth: 500px;
+  height: 80vh;
 }
 </style>
 
 <script>
+import { Chrome } from "vue-color";
+
 import { HTTP } from "../application/lib/http";
 import { displayError } from "../application/lib/errors.js";
 export default {
@@ -60,9 +66,11 @@
       g: 115,
       b: 116,
       a: 0.9,
+      fillColor: { r: 0, g: 0, b: 0, a: 1.0 },
       currentConfig: null
     };
   },
+  components: { "chrome-picker": Chrome },
   methods: {
     submit() {
       const payload = {
@@ -85,6 +93,21 @@
             message: `${status}: ${data.message || data}`
           });
         });
+
+      HTTP.put("/system/style/Bottlenecks/fill", this.fillColor.rgba, {
+        headers: {
+          "X-Gemma-Auth": localStorage.getItem("token"),
+          "Content-type": "application/json"
+        }
+      })
+        .then()
+        .catch(error => {
+          const { status, data } = error.response;
+          displayError({
+            title: "Backend Error",
+            message: `${status}: ${data.message || data}`
+          });
+        });
     }
   },
   mounted() {
@@ -109,6 +132,23 @@
           message: `${status}: ${data.message || data}`
         });
       });
+
+    HTTP.get("/system/style/Bottlenecks/fill", {
+      headers: {
+        "X-Gemma-Auth": localStorage.getItem("token"),
+        "Content-type": "application/json"
+      }
+    })
+      .then(response => {
+        this.fillColor = response.data.colour;
+      })
+      .catch(error => {
+        const { status, data } = error.response;
+        displayError({
+          title: "Backend Error",
+          message: `${status}: ${data.message || data}`
+        });
+      });
   }
 };
 </script>
--- a/client/yarn.lock	Fri Sep 28 20:58:38 2018 +0200
+++ b/client/yarn.lock	Fri Sep 28 21:39:01 2018 +0200
@@ -6814,6 +6814,11 @@
   resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664"
   integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=
 
+lodash.throttle@^4.0.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
+  integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
+
 lodash.transform@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
@@ -6922,6 +6927,11 @@
   dependencies:
     object-visit "^1.0.0"
 
+material-colors@^1.0.0:
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46"
+  integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==
+
 math-random@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
@@ -10231,6 +10241,11 @@
   resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
   integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
 
+tinycolor2@^1.1.2:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
+  integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=
+
 tmp@^0.0.33:
   version "0.0.33"
   resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
@@ -10683,6 +10698,15 @@
   resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
   integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
 
+vue-color@^2.6.0:
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/vue-color/-/vue-color-2.6.0.tgz#a4ef85b871cef4d47bf662c3b54321d2bb96f349"
+  integrity sha512-C/SqU/KScPHh6Br32nzQ4LWxzv88r8taGb6MrBHiOXZdkAQp2SpfYdav3K/u9xuWULqwgp2LNYaRPdrIm3A7HQ==
+  dependencies:
+    lodash.throttle "^4.0.0"
+    material-colors "^1.0.0"
+    tinycolor2 "^1.1.2"
+
 vue-eslint-parser@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1"