diff --git a/src/store/modules/feature.store.js b/src/store/modules/feature.store.js index 29d1dcb5265cc21f1692311275bba0aa43a1c1c3..3039126bf92273a558eacab63830e5599198ed99 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 302ea3cf82e2ac66241cce7eb64ae7a32d205de7..ea0b884b97385e823e0b5d3c29df488ecc862f5b 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 aef6f6c6d8e91a0148fa6fb7ddcabf98f1d9f77e..1679664fa12c995e1d6200cb42d5d72df12388f9 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 1567f09052906cf03ae50bfca849de4039e968bc..4f7d1f00182fb298b4a60ae5c2da834af91b8144 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 7fc6e51ac18cc4cfd2ce148947ddea292c6401d7..64f81a92d23152d3e066cca2fca1a5c1b561be06 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 094e4aa9c0fa3e5c0d023ad27855d3b8eaaff510..9d394e7e34a791334e0ab1b3e07b5afbc0d48fa6 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 ca88dcd6dfd1e729cbc0f3a63b3824c2592cbfd0..d2b101ce918adf1d734ce4e881b096429da52831 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 e811df993aa3bad01d6a003254a771f1816dda42..b4ac9598280ae24b64e5324a3cdc3145a37c7a62 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();