diff --git a/src/components/ImportTask.vue b/src/components/ImportTask.vue index 755a1658b414cea26d430c117d1c659a6cd11280..026b7cbfe30e8b8ffcc4e7354b33642f2a7b13ec 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 5eb1b790d5460376b3d24ee7785dcb29efce1f24..49921f0132dfd260b45b198d359bd45fc4f4fd30 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 b652e83445ea0ad34d018e0bdeeecf15efa0a9c0..7e78b47a05c4c4a3bf9db6aec227f68cb5ab659d 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/Feature/FeatureDetail.vue b/src/views/Feature/FeatureDetail.vue index 946b4629a960d30fa743f8ddb91a28f4139bdde2..32b4ed012aadd5573ac106ab41bab313ca790fe6 100644 --- a/src/views/Feature/FeatureDetail.vue +++ b/src/views/Feature/FeatureDetail.vue @@ -254,7 +254,11 @@ export default { this.map = mapService.createMap(this.$refs.map, { mapDefaultViewCenter, mapDefaultViewZoom, - interactions : { doubleClickZoom :false,mouseWheelZoom:false,dragPan:false } + interactions : { + doubleClickZoom :false, + mouseWheelZoom: false, + dragPan: false + } }); // Update link to feature list with map zoom and center diff --git a/src/views/FeatureType/FeatureTypeDetail.vue b/src/views/FeatureType/FeatureTypeDetail.vue index 58303368fb891af77f861fecb6985e2ed83d9ac8..3f81020ea44f41261b0526221d3e4aa9e6c92005 100644 --- a/src/views/FeatureType/FeatureTypeDetail.vue +++ b/src/views/FeatureType/FeatureTypeDetail.vue @@ -580,6 +580,8 @@ export default { if (field_type === 'list') { //*then check if the value is an available option if (!options.includes(fieldInFeature)) { + this.importError = `Le fichier est invalide: la valeur [ ${fieldInFeature} ] n'est pas une option valide + pour le champ personnalisé "${name}".`; return false; } } else if (customType !== field_type) { @@ -664,7 +666,8 @@ export default { if (field_type === 'list') { //*then check if the value is an available option if (fieldInFeature && !options.includes(fieldInFeature)) { - this.importError = `Le champ ${name} contient une valeur invalide.`; + this.importError = `Le fichier est invalide: la valeur [ ${fieldInFeature} ] n'est pas une option valide + pour le champ personnalisé "${name}".`; return false; } } else if (customType !== field_type) {