From 76c4cd48e08fce18c3363f644f99e50da99f69b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poussard?= <tpoussard@neogeo.fr> Date: Thu, 6 Jan 2022 14:53:33 +0100 Subject: [PATCH] fix error not updated in project_mapping_basemap for title & fix prop mutated --- src/components/feature/FeatureExtraForm.vue | 10 +++--- src/components/feature/FeatureListTable.vue | 2 ++ .../project/ProjectMappingContextLayer.vue | 2 ++ .../project/project_mapping_basemap.vue | 32 ++++++++----------- src/store/modules/map.js | 8 ++--- src/views/project/Project_mapping.vue | 2 +- 6 files changed, 26 insertions(+), 30 deletions(-) diff --git a/src/components/feature/FeatureExtraForm.vue b/src/components/feature/FeatureExtraForm.vue index a1c8140f..d4e10cf5 100644 --- a/src/components/feature/FeatureExtraForm.vue +++ b/src/components/feature/FeatureExtraForm.vue @@ -6,7 +6,7 @@ <label for="field.name">{{ field.label }}</label> <input :id="field.name" - v-model="field.value" + :value="field.value" type="text" :name="field.name" @blur="updateStore_extra_form" @@ -33,7 +33,7 @@ <!-- //* si click sur fléche dans champ input, pas de focus, donc pas de blur, donc utilisation de @change --> <input :id="field.name" - v-model.number="field.value" + :value="field.value" type="number" :name="field.name" @change="updateStore_extra_form" @@ -62,7 +62,7 @@ <label for="field.name">{{ field.label }}</label> <input :id="field.name" - v-model="field.value" + :value="field.value" type="date" :name="field.name" @blur="updateStore_extra_form" @@ -76,7 +76,7 @@ <div class="ui input"> <input :id="field.name" - v-model.number="field.value" + :value="field.value" type="number" step=".01" :name="field.name" @@ -90,7 +90,7 @@ > <label :for="field.name">{{ field.label }}</label> <textarea - v-model="field.value" + :value="field.value" :name="field.name" rows="3" @blur="updateStore_extra_form" diff --git a/src/components/feature/FeatureListTable.vue b/src/components/feature/FeatureListTable.vue index 0d032474..940810d2 100644 --- a/src/components/feature/FeatureListTable.vue +++ b/src/components/feature/FeatureListTable.vue @@ -277,6 +277,8 @@ </template> <script> +/* eslint-disable */ + import { mapState, mapGetters } from 'vuex'; export default { diff --git a/src/components/project/ProjectMappingContextLayer.vue b/src/components/project/ProjectMappingContextLayer.vue index eacd0d96..9f9fe56d 100644 --- a/src/components/project/ProjectMappingContextLayer.vue +++ b/src/components/project/ProjectMappingContextLayer.vue @@ -1,4 +1,6 @@ <template> +<!-- eslint-disable --> + <div :id="layer.dataKey" class="ui segment layer-item" diff --git a/src/components/project/project_mapping_basemap.vue b/src/components/project/project_mapping_basemap.vue index 36684a23..22c2f6b9 100644 --- a/src/components/project/project_mapping_basemap.vue +++ b/src/components/project/project_mapping_basemap.vue @@ -2,8 +2,10 @@ <div class="ui segment"> <div class="field required"> <label for="basemap-title">Titre</label> + <!-- eslint-disable --> <input - v-model="basemap.title" + :value="basemap.title" + @input="updateTitle" type="text" name="basemap-title" required @@ -66,6 +68,8 @@ </template> <script> +/* eslint-disable */ + import Sortable from 'sortablejs'; import ProjectMappingContextLayer from '@/components/project/ProjectMappingContextLayer.vue'; @@ -95,21 +99,6 @@ export default { }, }, - watch: { - 'basemap.title': { - deep: true, - handler: function (newValue, oldValue) { - if (newValue !== oldValue) { - this.basemap.title = newValue; - if (newValue === '') - this.basemap.errors = 'Veuillez compléter ce champ.'; - else this.basemap.errors = ''; - this.updateTitle(this.basemap); - } - }, - }, - }, - created() { if (this.basemap.layers) { //* add datakeys to layers coming from api @@ -144,11 +133,18 @@ export default { }, updateTitle(evt) { + let errors = ''; + if(evt.target.value === '') { //* delete or add error message while typing + errors = "Veuillez compléter ce champ."; + } this.$store.commit('map/UPDATE_BASEMAP', { id: this.basemap.id, - title: evt.title, - errors: evt.errors, + title: evt.target.value, + errors, }); + + + }, removeLayer(dataKey) { diff --git a/src/store/modules/map.js b/src/store/modules/map.js index cc4d836f..a1e4b1b3 100644 --- a/src/store/modules/map.js +++ b/src/store/modules/map.js @@ -40,15 +40,11 @@ const map = { UPDATE_BASEMAP(state, { title, id, layers, errors }) { const index = state.basemaps.findIndex((el) => el.id === id); if (index !== -1) { - if (title) { - state.basemaps[index].title = title; - } + state.basemaps[index].title = title; + state.basemaps[index].errors = errors; if (layers) { state.basemaps[index].layers = layers; } - if (errors) { - state.basemaps[index].errors = errors; - } } }, DELETE_BASEMAP(state, basemapId) { diff --git a/src/views/project/Project_mapping.vue b/src/views/project/Project_mapping.vue index c8b110ab..ff4c0351 100644 --- a/src/views/project/Project_mapping.vue +++ b/src/views/project/Project_mapping.vue @@ -102,7 +102,7 @@ export default { checkTitles() { let isValid = true; this.basemaps.forEach((basemap) => { - if (basemap.title === null || basemap.title === '') { + if (basemap.title === null || basemap.title === '') { //* check title when saving basemaps basemap.errors = 'Veuillez compléter ce champ.'; isValid = false; } else if (basemap.layers.length === 0) { -- GitLab