Mercurial > gemma
view client/src/components/systemconfiguration/MorphologyClassbreaks.vue @ 3625:a688a478e35f configuration
implemented configuration backend and frontend
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Fri, 07 Jun 2019 12:53:41 +0200 |
parents | 30a9fdac70f0 |
children | a1bb7c894058 |
line wrap: on
line source
<template> <div class="d-flex flex-column pb-4 border-bottom"> <h5 class="py-2 px-3 mb-2 m-0"> <translate>Bottleneck Morphology Classbreaks</translate> </h5> <div class="px-3"> <h6 class="font-weight-bold"><translate>Sounding Result</translate></h6> <div class="d-flex flex-wrap"> <div class="input-group mb-3 mr-2 classbreak" v-for="(value, i) in morphologyClassbreaks" :key="i" > <input v-model="morphologyClassbreaks[i]" type="number" min="0" step="0.1" class="form-control form-control-sm" /> <div class="input-group-append"> <button class="btn btn-sm btn-outline-secondary" type="button" @click="morphologyClassbreaks.splice(i, 1)" > <font-awesome-icon icon="times" /> </button> </div> </div> <button class="btn btn-sm btn-success mb-3" @click=" morphologyClassbreaks.push( morphologyClassbreaks.length ? morphologyClassbreaks[morphologyClassbreaks.length - 1] : 1 ) " > <font-awesome-icon icon="plus" /> </button> </div> </div> <div class="px-3"> <h6 class="font-weight-bold"> <translate>Sounding Result Comparison</translate> </h6> <div class="d-flex flex-wrap"> <div class="input-group mb-3 mr-2 classbreak" v-for="(value, i) in morphologyClassbreaksCompare" :key="i" > <input v-model="morphologyClassbreaksCompare[i]" type="number" step="0.1" class="form-control form-control-sm" /> <div class="input-group-append"> <button class="btn btn-sm btn-outline-secondary" type="button" @click="morphologyClassbreaksCompare.splice(i, 1)" > <font-awesome-icon icon="times" /> </button> </div> </div> <button class="btn btn-sm btn-success mb-3" @click=" morphologyClassbreaksCompare.push( morphologyClassbreaksCompare.length ? morphologyClassbreaksCompare[ morphologyClassbreaksCompare.length - 1 ] : 1 ) " > <font-awesome-icon icon="plus" /> </button> </div> </div> <div class="mt-4 px-3"> <a @click.prevent="submit" class="btn btn-info btn-sm text-white"> <translate>Send</translate> </a> </div> </div> </template> <style lang="sass" scoped> .classbreak width: 92px .btn-outline-secondary border-color: #ccc color: #ccc &:hover background: #eee color: #dc3545 </style> <script> /* This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Markus Kottländer <markus@intevation.de> */ import { mapState } from "vuex"; export default { data() { return { morphologyClassbreaks: [], morphologyClassbreaksCompare: [] }; }, computed: { ...mapState("application", ["config"]) }, methods: { submit() { this.$store.dispatch("application/saveConfig", { morphology_classbreaks: this.morphologyClassbreaks.join(","), morphology_classbreaks_compare: this.morphologyClassbreaksCompare.join( "," ) }); } }, mounted() { this.morphologyClassbreaks = this.config.morphology_classbreaks .split(",") .map(n => Number(n)); this.morphologyClassbreaksCompare = this.config.morphology_classbreaks_compare .split(",") .map(n => Number(n)); } }; </script>