diff --git a/src/views/feature/Feature_list.vue b/src/views/feature/Feature_list.vue index 8f69f3a1634a4571f2df40efba108ab6c91fb598..e3906d9f6020911433cbd6fcf232f1cd49506ce5 100644 --- a/src/views/feature/Feature_list.vue +++ b/src/views/feature/Feature_list.vue @@ -37,7 +37,11 @@ </div> <div - v-if="project && feature_types && permissions.can_create_feature" + v-if=" + project && + feature_types.length > 0 && + permissions.can_create_feature + " class="item right" > <div @@ -322,10 +326,10 @@ export default { }, onFilterChange() { - var features = this.filteredFeatures; - this.featureGroup.clearLayers(); - this.featureGroup = mapUtil.addFeatures(features, {}); - if (features.length > 0) { + if (this.featureGroup) { + const features = this.filteredFeatures; + this.featureGroup.clearLayers(); + this.featureGroup = mapUtil.addFeatures(features, {}); mapUtil .getMap() .fitBounds(this.featureGroup.getBounds(), { padding: [25, 25] }); @@ -356,9 +360,8 @@ export default { }); // --------- End sidebar events ---------- - if (this.$store.state.map.geojsonFeatures) { - this.loadFeatures(this.$store.state.map.geojsonFeatures); - } else { + if (this.features && this.features.length > 0) { + //* features are updated consistently, then if features exists, we can fetch the geojson version const url = `${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/${this.$route.params.slug}/feature/?output=geojson`; this.$store.commit( "DISPLAY_LOADER", @@ -367,7 +370,9 @@ export default { axios .get(url) .then((response) => { - this.loadFeatures(response.data.features); + if (response.status === 200 && response.data.features.length > 0) { + this.loadFeatures(response.data.features); + } this.$store.commit("DISCARD_LOADER"); }) .catch((error) => { diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue index 5087954315d796ba8161c98966784ce467d44505..b77188127e9e778f1f8b306569f250629617dff8 100644 --- a/src/views/project/Project_detail.vue +++ b/src/views/project/Project_detail.vue @@ -590,7 +590,6 @@ export default { if (this.project && this.permissions.can_view_project) { this.$store.dispatch("map/INITIATE_MAP"); const url = `${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/${this.$route.params.slug}/feature/?output=geojson`; - let self = this; axios .get(url) .then((response) => { @@ -600,7 +599,9 @@ export default { mapUtil .getMap() .fitBounds(featureGroup.getBounds(), { padding: [25, 25] }); - self.$store.commit("map/SET_GEOJSON_FEATURES", features); + this.$store.commit("map/SET_GEOJSON_FEATURES", features); + } else { + this.$store.commit("map/SET_GEOJSON_FEATURES", []); } }) .catch((error) => {