Mercurial > gemma
changeset 4198:e3210c87f497 stylesconfig
client: implement basis layer-styles configurations
* refactor ColorSetting component
* set default layers styles
author | Fadi Abbud <fadi.abbud@intevation.de> |
---|---|
date | Thu, 08 Aug 2019 16:23:17 +0200 |
parents | 2ac52d89619e |
children | 8509d80b85a1 |
files | client/src/components/systemconfiguration/ColorSettings.vue client/src/components/systemconfiguration/defaults.js |
diffstat | 2 files changed, 126 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/systemconfiguration/ColorSettings.vue Wed Aug 07 15:23:41 2019 +0200 +++ b/client/src/components/systemconfiguration/ColorSettings.vue Thu Aug 08 16:23:17 2019 +0200 @@ -2,36 +2,44 @@ <div class="d-flex flex-column py-4"> <div class="px-3 container-fluid"> <div class="row"> - <div class="col-sm-2"> - <div class="card"> - <div class="card-header small"> - <translate>Bottleneck Fill Color</translate> - </div> - <div class="card-body p-0"> - <chrome-picker v-model="fillColor" /> + <div v-for="f in features" :key="f.key" class="column n ml-4"> + <div class="row-sm-2 mt-1"> + <div class="card"> + <div class="card-header small text-left"> + <translate>{{ f.name }} Fill Color</translate> + </div> + <div class="card-body p-0"> + <chrome-picker v-model="f.fillColor" /> + </div> </div> </div> - </div> - <div class="col-sm-2"> - <div class="card"> - <div class="card-header small"> - <translate>Bottleneck Border Color</translate> + <div class="row-sm-2 mt-1"> + <div class="card"> + <div class="card-header small font-weight text-left"> + <translate>{{ f.name }} Border Color</translate> + </div> + <div class="card-body p-0"> + <chrome-picker v-model="f.strokeColor" /> + </div> </div> - <div class="card-body p-0"> - <chrome-picker v-model="strokeColor" /> - </div> + </div> + <div class="mt-2"> + <a + @click.prevent="submit(f)" + class="btn btn-info btn-sm text-white" + > + <translate>Send</translate> + </a> + <a + @click.prevent="reset(f)" + class="btn btn-outline-info btn-sm ml-2" + > + <translate>Reset to defaults</translate> + </a> </div> </div> </div> </div> - <div class="mt-4 px-3"> - <a @click.prevent="submit" class="btn btn-info btn-sm text-white"> - <translate>Send</translate> - </a> - <a @click.prevent="reset" class="btn btn-outline-info btn-sm ml-2"> - <translate>Reset to defaults</translate> - </a> - </div> </div> </template> @@ -71,14 +79,47 @@ import { displayError, displayInfo } from "@/lib/errors"; import defaults from "./defaults"; +const initSColor = { r: 0, g: 0, b: 0, a: 1.0 }, + initFColor = { r: 0, g: 0, b: 0, a: 1.0 }; + export default { name: "colorsettings", data() { return { sent: false, - strokeColor: { r: 0, g: 0, b: 0, a: 1.0 }, - fillColor: { r: 0, g: 0, b: 0, a: 1.0 }, - currentConfig: null + currentConfig: null, + features: [ + { + name: "Bottlenecks", + fillColor: { r: 0, g: 0, b: 0, a: 1.0 }, + strokeColor: { r: 0, g: 0, b: 0, a: 1.0 } + }, + { + name: "Stretches", + fillColor: initFColor, + strokeColor: initSColor + }, + { + name: "Sections", + fillColor: initFColor, + strokeColor: initSColor + }, + { + name: "LOS_1", + fillColor: initFColor, + strokeColor: initSColor + }, + { + name: "LOS_2", + fillColor: initFColor, + strokeColor: initSColor + }, + { + name: "LOS_3", + fillColor: initFColor, + strokeColor: initSColor + } + ] }; }, components: { @@ -86,15 +127,51 @@ "compact-picker": Compact }, methods: { - reset() { - this.strokeColor = defaults.feature_colours_bottlenecks_stroke; - this.fillColor = defaults.feature_colours_bottlenecks_fill; + reset(feature) { + switch (feature.name) { + case "Bottlenecks": { + feature.strokeColor = defaults.feature_colours_bottlenecks_stroke; + feature.fillColor = defaults.feature_colours_bottlenecks_fill; + break; + } + case "Stretches": { + feature.strokeColor = defaults.feature_colours_stretches_stroke; + feature.fillColor = defaults.feature_colours_stretches_fill; + break; + } + case "Sections": { + feature.strokeColor = defaults.feature_colours_sections_stroke; + feature.fillColor = defaults.feature_colours_sections_fill; + break; + } + case "LOS_1": { + feature.strokeColor = + defaults.feature_colours_fairwaydimensionslos1_stroke; + feature.fillColor = + defaults.feature_colours_fairwaydimensionslos1_fill; + break; + } + case "LOS_2": { + feature.strokeColor = + defaults.feature_colours_fairwaydimensionslos2_stroke; + feature.fillColor = + defaults.feature_colours_fairwaydimensionslos2_fill; + break; + } + case "LOS_3": { + feature.strokeColor = + defaults.feature_colours_fairwaydimensionslos3_stroke; + feature.fillColor = + defaults.feature_colours_fairwaydimensionslos3_fill; + break; + } + } }, - submit() { + submit(feature) { Promise.all([ HTTP.put( - "/system/style/Bottlenecks/stroke", - this.strokeColor.rgba || this.strokeColor, + `/system/style/${feature.name}/stroke`, + feature.strokeColor.rgba || feature.strokeColor, { headers: { "X-Gemma-Auth": localStorage.getItem("token"), @@ -103,8 +180,8 @@ } ), HTTP.put( - "/system/style/Bottlenecks/fill", - this.fillColor.rgba || this.fillColor, + `/system/style/${feature.name}/fill`, + feature.fillColor.rgba || feature.fillColor, { headers: { "X-Gemma-Auth": localStorage.getItem("token"), @@ -128,6 +205,7 @@ } }, mounted() { + // For now we getting only the stored styles for bottlenecks HTTP.get("/system/style/Bottlenecks/stroke", { headers: { "X-Gemma-Auth": localStorage.getItem("token"), @@ -135,7 +213,7 @@ } }) .then(response => { - this.strokeColor = response.data.colour; + this.features[0].strokeColor = response.data.colour; }) .catch(error => { const { status, data } = error.response; @@ -152,7 +230,7 @@ } }) .then(response => { - this.fillColor = response.data.colour; + this.features[0].fillColor = response.data.colour; }) .catch(error => { const { status, data } = error.response;
--- a/client/src/components/systemconfiguration/defaults.js Wed Aug 07 15:23:41 2019 +0200 +++ b/client/src/components/systemconfiguration/defaults.js Thu Aug 08 16:23:17 2019 +0200 @@ -13,5 +13,16 @@ ecdis_wms_url: "https://service.d4d-portal.info/wms/", ecdis_wms_params: '{"LAYERS": "d4d", "VERSION": "1.1.1", "TILED": true}', feature_colours_bottlenecks_stroke: { r: 250, g: 40, b: 255, a: 1 }, - feature_colours_bottlenecks_fill: { r: 255, g: 37, b: 196, a: 0.14 } + feature_colours_bottlenecks_fill: { r: 255, g: 37, b: 196, a: 0.14 }, + feature_colours_stretches_stroke: { r: 250, g: 200, b: 0, a: 0.8 }, + feature_colours_stretches_fill: { r: 250, g: 200, b: 10, a: 0.3 }, + feature_colours_sections_stroke: { r: 255, g: 150, b: 10, a: 0.8 }, + feature_colours_sections_fill: { r: 255, g: 150, b: 0, a: 0.3 }, + feature_colours_fairwaydimensionslos1_stroke: { r: 0, g: 0, b: 255, a: 0.8 }, + feature_colours_fairwaydimensionslos1_fill: { r: 240, g: 230, b: 0, a: 0.2 }, + feature_colours_fairwaydimensionslos2_stroke: { r: 0, g: 0, b: 255, a: 0.9 }, + feature_colours_fairwaydimensionslos2_fill: { r: 240, g: 230, b: 0, a: 0.1 }, + feature_colours_fairwaydimensionslos3_stroke: { r: 0, g: 0, b: 255, a: 1.0 }, + feature_colours_fairwaydimensionslos3_fill: { r: 240, g: 230, b: 0, a: 0.4 }, + feature_colours_waterwayprofiles_stroke: { r: 0, g: 0, b: 255, a: 0.5 } };