From 6211713fb00533f70aecb043fa5eaece5dcd0a91 Mon Sep 17 00:00:00 2001 From: florent <flavelle@neogeo.fr> Date: Thu, 28 Apr 2022 17:42:18 +0200 Subject: [PATCH] fetch features if import finished --- src/components/ImportTask.vue | 1 + src/store/modules/feature-type.store.js | 23 ++++++++++++++++++++- src/store/modules/feature.store.js | 4 +++- src/views/FeatureType/FeatureTypeDetail.vue | 1 - src/views/FeatureType/FeatureTypeEdit.vue | 1 - 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/components/ImportTask.vue b/src/components/ImportTask.vue index 755a1658..026b7cbf 100644 --- a/src/components/ImportTask.vue +++ b/src/components/ImportTask.vue @@ -131,6 +131,7 @@ export default { fetchImports() { this.$store.dispatch( 'feature-type/GET_IMPORTS', { + project_slug: this.$route.params.slug, feature_type: this.$route.params.feature_type_slug }); this.$store.dispatch('feature/GET_PROJECT_FEATURES', { diff --git a/src/store/modules/feature-type.store.js b/src/store/modules/feature-type.store.js index 5eb1b790..49921f01 100644 --- a/src/store/modules/feature-type.store.js +++ b/src/store/modules/feature-type.store.js @@ -248,7 +248,7 @@ const feature_type = { }); }, - GET_IMPORTS({ commit }, { project_slug, feature_type }) { + GET_IMPORTS({ state, commit, dispatch }, { project_slug, feature_type }) { let url = `${this.state.configuration.VUE_APP_DJANGO_API_BASE}import-tasks/`; if (project_slug) { url = url.concat('', `${url.includes('?') ? '&' : '?'}project_slug=${project_slug}`); @@ -260,6 +260,27 @@ const feature_type = { .get(url) .then((response) => { if (response) { + const diffStatus = []; + if (state.importFeatureTypeData) { + for (const data of response.data) { + const index = + state.importFeatureTypeData + .findIndex(el => el.geojson_file_name === data.geojson_file_name); + if (index !== -1 && state.importFeatureTypeData[index].status !== data.status && data.status === 'finished') { + diffStatus.push(data); + } + } + } + if (diffStatus.length > 0) { + dispatch( + 'feature/GET_PROJECT_FEATURES', + { + project_slug: project_slug, + feature_type__slug: feature_type, + }, + { root: true } + ); + } commit('SET_IMPORT_FEATURE_TYPES_DATA', response.data); } return response; diff --git a/src/store/modules/feature.store.js b/src/store/modules/feature.store.js index b652e834..7e78b47a 100644 --- a/src/store/modules/feature.store.js +++ b/src/store/modules/feature.store.js @@ -163,7 +163,9 @@ const feature = { } return response; } catch (error) { - console.error(error); + if (error.message) { + console.error(error); + } return error; } }, diff --git a/src/views/FeatureType/FeatureTypeDetail.vue b/src/views/FeatureType/FeatureTypeDetail.vue index 5f5db777..3f81020e 100644 --- a/src/views/FeatureType/FeatureTypeDetail.vue +++ b/src/views/FeatureType/FeatureTypeDetail.vue @@ -702,7 +702,6 @@ export default { } else { jsonValidity = true; } - console.log(jsonValidity); if (jsonValidity) { this.geojsonFileToImport = files[0]; // todo : remove this value from state as it stored (first attempt didn't work) diff --git a/src/views/FeatureType/FeatureTypeEdit.vue b/src/views/FeatureType/FeatureTypeEdit.vue index 09f6b34e..303f3d2f 100644 --- a/src/views/FeatureType/FeatureTypeEdit.vue +++ b/src/views/FeatureType/FeatureTypeEdit.vue @@ -645,7 +645,6 @@ export default { }, transformProperties(prop) { - console.log(prop); const type = typeof prop; const date = new Date(prop); if (type === 'boolean') { -- GitLab