diff --git a/src/store/modules/map.js b/src/store/modules/map.js index 4a84a098f5bb2347b321b27cd09956360c87b3a7..083bbb453dafecdbee11ead4bab3b5056f34bf58 100644 --- a/src/store/modules/map.js +++ b/src/store/modules/map.js @@ -153,43 +153,59 @@ const map = { SAVE_BASEMAPS({ state, rootState, dispatch }, newBasemapIds) { - for (let basemap of state.basemaps) { - basemap["project"] = rootState.project_slug - // TODO: différencier PUT & POST - console.log(newBasemapIds.includes(basemap.id), newBasemapIds, basemap.id); - if (newBasemapIds.includes(basemap.id)) { - axios - .post(`${this.state.configuration.VUE_APP_DJANGO_API_BASE}base-maps/`, basemap) - .then((response) => (console.log(response.data))) - .catch((error) => { - throw error; - }); - } else { - axios - .put(`${this.state.configuration.VUE_APP_DJANGO_API_BASE}base-maps/${basemap.id}/`, basemap) - .then((response) => (console.log(response.data))) - .catch((error) => { - throw error; - }); + return new Promise((resolve, reject) => { + for (let basemap of state.basemaps) { + basemap["project"] = rootState.project_slug + // TODO: différencier PUT & POST + if (newBasemapIds.includes(basemap.id)) { + axios + .post(`${this.state.configuration.VUE_APP_DJANGO_API_BASE}base-maps/`, basemap) + .then((response) => { + resolve(response); + }) + .catch((error) => { + reject(error); + throw error; + }); + } else { + axios + .put(`${this.state.configuration.VUE_APP_DJANGO_API_BASE}base-maps/${basemap.id}/`, basemap) + .then((response) => { + resolve(response); + }) + .catch((error) => { + reject(error); + throw error; + }); + } } - } - //* delete in the backend the basemaps that was rewoved from the front - for (let basemapId of state.basemapsToDelete) { - dispatch("DELETE_BASEMAP", basemapId); - } + //* delete in the backend the basemaps that was rewoved from the front + for (let basemapId of state.basemapsToDelete) { + dispatch("DELETE_BASEMAP", basemapId) + .then((response) =>{ + resolve(response); + }); + } + state.basemapsToDelete = [] + }); }, DELETE_BASEMAP({ commit }, basemapId) { - axios - .delete(`${this.state.configuration.VUE_APP_DJANGO_API_BASE}base-maps/`, basemapId) + return new Promise((resolve, reject) => { + let url = `${this.state.configuration.VUE_APP_DJANGO_API_BASE}base-maps/` + basemapId + axios + .delete(url) .then((response) => { if (response && response.status === 200) { commit("REMOVE_BASEMAP_ID_TO_DELETE", basemapId) } + resolve(response); }) .catch((error) => { + reject(error); throw error; }); + }); } }, } diff --git a/src/views/project/Project_mapping.vue b/src/views/project/Project_mapping.vue index f7a0b2ec7de6d78074f1a13137cc291484b3f194..3621e2d8ce1edf5590a23ab97f877c8ccc612b54 100644 --- a/src/views/project/Project_mapping.vue +++ b/src/views/project/Project_mapping.vue @@ -70,7 +70,11 @@ export default { saveChanges() { // ToDo : check if values are filled - this.$store.dispatch("map/SAVE_BASEMAPS", this.newBasemapIds); + this.$store.dispatch("map/SAVE_BASEMAPS", this.newBasemapIds) + .then((res) => { + console.log('res', res) + }); + this.newBasemapIds = []; }, },