From 2466bff42ae28a862f1b27ec361666daae3999f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poussard?= <tpoussard@neogeo.fr> Date: Wed, 19 Jan 2022 18:27:11 +0100 Subject: [PATCH] remove project getter and project_slug var, fix feature_edit & basemaps --- src/store/modules/feature.store.js | 10 +++++----- src/store/modules/map.store.js | 2 +- src/store/modules/projects.store.js | 11 ++--------- src/views/feature/Feature_detail.vue | 2 +- src/views/feature/Feature_edit.vue | 6 ++++-- src/views/feature/Feature_list.vue | 2 +- src/views/feature_type/Feature_type_symbology.vue | 2 +- src/views/project/Project_members.vue | 5 +++-- 8 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/store/modules/feature.store.js b/src/store/modules/feature.store.js index 29d1dcb5..3039126b 100644 --- a/src/store/modules/feature.store.js +++ b/src/store/modules/feature.store.js @@ -183,7 +183,7 @@ const feature = { dispatch( 'GET_PROJECT_FEATURE', { - project_slug: rootState.project.project_slug, + project_slug: rootState.projects.project.slug, feature_id: featureId } ) @@ -220,7 +220,7 @@ const feature = { title: state.form.title, description: state.form.description.value, status: state.form.status.value, - project: rootState.project_slug, + project: rootState.projects.project.slug, feature_type: rootState.feature_type.current_feature_type_slug, ...extraFormObject } @@ -232,7 +232,7 @@ const feature = { if (routeName === 'editer-signalement') { url += `${state.form.feature_id}/? feature_type__slug=${rootState.feature_type.current_feature_type_slug} - &project__slug=${rootState.project_slug}`; + &project__slug=${rootState.projects.project.slug}`; } return axios({ @@ -259,7 +259,7 @@ const feature = { arraysOffline = JSON.parse(localStorageArray); } let updateMsg = { - project: rootState.project_slug, + project: rootState.projects.project.slug, type: routeName === 'editer-signalement' ? 'put' : 'post', featureId: state.form.feature_id, geojson: geojson @@ -375,7 +375,7 @@ const feature = { DELETE_FEATURE({ rootState }, feature_id) { const url = `${rootState.configuration.VUE_APP_DJANGO_API_BASE}features/${feature_id}/?` + `feature_type__slug=${rootState.feature_type.current_feature_type_slug}` + - `&project__slug=${rootState.project_slug}`; + `&project__slug=${rootState.projects.project.slug}`; return axios .delete(url) .then((response) => response) diff --git a/src/store/modules/map.store.js b/src/store/modules/map.store.js index 302ea3cf..ea0b884b 100644 --- a/src/store/modules/map.store.js +++ b/src/store/modules/map.store.js @@ -157,7 +157,7 @@ const map = { async SAVE_BASEMAPS({ state, rootState, dispatch }, newBasemapIds) { const DJANGO_API_BASE = this.state.configuration.VUE_APP_DJANGO_API_BASE; function postOrPut(basemap) { - basemap['project'] = rootState.project_slug; + basemap['project'] = rootState.projects.project.slug; if (newBasemapIds.includes(basemap.id)) { return axios .post(`${DJANGO_API_BASE}base-maps/`, basemap) diff --git a/src/store/modules/projects.store.js b/src/store/modules/projects.store.js index aef6f6c6..1679664f 100644 --- a/src/store/modules/projects.store.js +++ b/src/store/modules/projects.store.js @@ -23,7 +23,6 @@ const projects = { }, getters: { - project: state => state.projects.find((project) => project.slug === state.project_slug), // todo : delete it project_types: state => state.projects.filter(projet => projet.is_project_type), project_user: state => state.projects.filter(projet => projet.creator === state.user.id), }, @@ -51,10 +50,6 @@ const projects = { state.project = project; }, - SET_PROJECT_SLUG(state, slug) { // todo : delete it - state.project_slug = slug; - }, - SET_PROJECTS_FILTER(state, payload) { state.filters[payload.filter] = payload.value; }, @@ -110,14 +105,12 @@ const projects = { commit('SET_PROJECT', project); }, - async GET_PROJECT_INFO({ state, commit, dispatch }, slug) { - commit('SET_PROJECT_SLUG', slug); + async GET_PROJECT_INFO({ rootState, dispatch }, slug) { let promises = [ dispatch('GET_PROJECT_LAST_MESSAGES', slug).then(response => response), dispatch('feature_type/GET_PROJECT_FEATURE_TYPES', slug, { root: true }).then(response => response), - // dispatch("feature/GET_PROJECT_FEATURES", slug).then(response => response), ]; - if (state.user) promises.push(dispatch('map/GET_BASEMAPS', slug).then(response => response)); + if (rootState.user) promises.push(dispatch('map/GET_BASEMAPS', slug, { root: true }).then(response => response)); const promiseResult = await Promise.all(promises); return promiseResult; diff --git a/src/views/feature/Feature_detail.vue b/src/views/feature/Feature_detail.vue index 1567f090..4f7d1f00 100644 --- a/src/views/feature/Feature_detail.vue +++ b/src/views/feature/Feature_detail.vue @@ -649,7 +649,7 @@ export default { this.$router.push({ name: 'project_detail', params: { - slug: this.$store.state.project_slug, + slug: this.$route.params.slug, message, }, }); diff --git a/src/views/feature/Feature_edit.vue b/src/views/feature/Feature_edit.vue index 7fc6e51a..64f81a92 100644 --- a/src/views/feature/Feature_edit.vue +++ b/src/views/feature/Feature_edit.vue @@ -370,9 +370,10 @@ export default { }, computed: { - ...mapGetters(['project', 'permissions']), + ...mapGetters(['permissions']), ...mapGetters('feature_type', ['feature_type']), ...mapState(['user', 'USER_LEVEL_PROJECTS']), + ...mapState('projects', ['project']), ...mapState('map', ['basemaps']), ...mapState('feature', [ 'attachmentFormset', @@ -486,7 +487,8 @@ export default { mounted() { let promises = [ - this.$store.dispatch('GET_PROJECT_INFO', this.$route.params.slug), + this.$store.dispatch('projects/GET_PROJECT_INFO', this.$route.params.slug), + this.$store.dispatch('projects/GET_PROJECT', this.$route.params.slug), ]; if (this.$route.params.slug_signal) { promises.push( diff --git a/src/views/feature/Feature_list.vue b/src/views/feature/Feature_list.vue index 094e4aa9..9d394e7e 100644 --- a/src/views/feature/Feature_list.vue +++ b/src/views/feature/Feature_list.vue @@ -533,7 +533,7 @@ export default { .then(() => { if (!this.modalAllDeleteOpen) { this.GET_PROJECT_FEATURES({ - project_slug: this.project.slug, + project_slug: this.$route.params.slug, }) .then(() => { this.fetchPagedFeatures(); diff --git a/src/views/feature_type/Feature_type_symbology.vue b/src/views/feature_type/Feature_type_symbology.vue index ca88dcd6..d2b101ce 100644 --- a/src/views/feature_type/Feature_type_symbology.vue +++ b/src/views/feature_type/Feature_type_symbology.vue @@ -272,7 +272,7 @@ export default { this.$router.push({ name: 'project_detail', params: { - slug: this.$store.state.project_slug, + slug: this.$route.params.slug, }, }); }, 1500); diff --git a/src/views/project/Project_members.vue b/src/views/project/Project_members.vue index e811df99..b4ac9598 100644 --- a/src/views/project/Project_members.vue +++ b/src/views/project/Project_members.vue @@ -128,7 +128,7 @@ <script> import axios from '@/axios-client.js'; import frag from 'vue-frag'; -import { mapGetters } from 'vuex'; +import { mapState } from 'vuex'; import Dropdown from '@/components/Dropdown.vue'; export default { @@ -170,7 +170,7 @@ export default { }, computed: { - ...mapGetters(['project']), + ...mapState('projects', ['project']), userOptions: function () { return this.projectUsers @@ -226,6 +226,7 @@ export default { created() { if (!this.project) { + this.$store.dispatch('GET_PROJECT', this.$route.params.slug); this.$store.dispatch('GET_PROJECT_INFO', this.$route.params.slug); } this.populateMembers(); -- GitLab