From f62e4ec28405d93c05c8e1502bf4e438e81e5273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poussard?= <tpoussard@neogeo.fr> Date: Wed, 1 Dec 2021 17:32:21 +0100 Subject: [PATCH] empty feature and extra_form at feature editon/creation --- src/store/modules/feature.js | 15 +++++++++------ src/views/feature/Feature_edit.vue | 14 +++++++++++--- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/store/modules/feature.js b/src/store/modules/feature.js index 9394dbe5..8d8bd2f2 100644 --- a/src/store/modules/feature.js +++ b/src/store/modules/feature.js @@ -58,6 +58,9 @@ const feature = { SET_EXTRA_FORM(state, extra_form) { state.extra_form = extra_form; }, + CLEAR_EXTRA_FORM(state) { + state.extra_form = []; + }, ADD_ATTACHMENT_FORM(state, attachmentFormset) { state.attachmentFormset = [...state.attachmentFormset, attachmentFormset]; }, @@ -109,7 +112,7 @@ const feature = { rootState.cancellableSearchRequest[rootState.cancellableSearchRequest.length - 1]; currentRequestCancelToken.cancel(); } - + const cancelToken = axios.CancelToken.source(); commit('SET_CANCELLABLE_SEARCH_REQUEST', cancelToken, { root: true }); commit("SET_FEATURES", []); @@ -121,10 +124,10 @@ const feature = { url = url.concat('', `${url.includes('?') ? '&' : '?'}title__contains=${search}`); } if (limit) { - url =url.concat('', `${url.includes('?') ? '&' : '?'}limit=${limit}`); + url = url.concat('', `${url.includes('?') ? '&' : '?'}limit=${limit}`); } return axios - .get(url , { cancelToken: cancelToken.token }) + .get(url, { cancelToken: cancelToken.token }) .then((response) => { if (response.status === 200 && response.data) { const features = response.data.features; @@ -137,19 +140,19 @@ const feature = { throw error; }); }, - GET_PROJECT_FEATURE({ commit, rootState }, { project_slug, feature_id }) { + GET_PROJECT_FEATURE({ commit, rootState }, { project_slug, feature_id }) { if (rootState.cancellableSearchRequest.length > 0) { const currentRequestCancelToken = rootState.cancellableSearchRequest[rootState.cancellableSearchRequest.length - 1]; currentRequestCancelToken.cancel(); } - + const cancelToken = axios.CancelToken.source(); commit('SET_CANCELLABLE_SEARCH_REQUEST', cancelToken, { root: true }); commit("SET_CURRENT_FEATURE", null); let url = `${rootState.configuration.VUE_APP_DJANGO_API_BASE}projects/${project_slug}/feature/?id=${feature_id}`; return axios - .get(url , { cancelToken: cancelToken.token }) + .get(url, { cancelToken: cancelToken.token }) .then((response) => { if (response.status === 200 && response.data.features) { const feature = response.data.features[0]; diff --git a/src/views/feature/Feature_edit.vue b/src/views/feature/Feature_edit.vue index 8ce75b2a..769d558c 100644 --- a/src/views/feature/Feature_edit.vue +++ b/src/views/feature/Feature_edit.vue @@ -367,7 +367,7 @@ export default { return this.$route.name; }, - feature () { + feature() { return this.$store.state.feature.current_feature; }, @@ -563,7 +563,10 @@ export default { return { ...field, //* add value field to extra forms from feature_type and existing values if feature is defined - value: feature ? findCurrentValue(field.label) : null, + value: + feature && feature.feature_data + ? findCurrentValue(field.label) + : null, }; }); this.$store.commit("feature/SET_EXTRA_FORM", extraForm); @@ -999,6 +1002,10 @@ export default { "feature_type/SET_CURRENT_FEATURE_TYPE_SLUG", this.$route.params.slug_type_signal ); + //* empty previous feature data, not emptying by itself since it doesn't update by itself anymore + if (this.currentRouteName === "ajouter-signalement") { + this.$store.commit("feature/SET_CURRENT_FEATURE", []); + } if (this.$route.params.slug_signal) { this.getFeatureAttachments(); @@ -1023,7 +1030,7 @@ export default { this.initForm(); this.initMap(); this.onFeatureTypeLoaded(); - if (this.feature) this.initExtraForms(this.feature); + this.initExtraForms(this.feature); setTimeout( function () { @@ -1038,6 +1045,7 @@ export default { //* be sure that previous Formset have been cleared for creation this.$store.commit("feature/CLEAR_ATTACHMENT_FORM"); this.$store.commit("feature/CLEAR_LINKED_FORM"); + this.$store.commit("feature/CLEAR_EXTRA_FORM"); }, }; </script> -- GitLab