From 820a2e258670125294001a26922f83ca1a43aaf4 Mon Sep 17 00:00:00 2001 From: DESPRES Damien <ddespres@neogeo.fr> Date: Mon, 29 Nov 2021 17:50:13 +0100 Subject: [PATCH] fix #12552 --- src/components/map-layers/SidebarLayers.vue | 21 ++++++++++++------- src/views/feature/Feature_detail.vue | 10 ++++++--- src/views/feature/Feature_list.vue | 23 +++++++++++++++------ src/views/project/Project_detail.vue | 6 ++++-- src/views/project/Project_members.vue | 2 +- 5 files changed, 43 insertions(+), 19 deletions(-) diff --git a/src/components/map-layers/SidebarLayers.vue b/src/components/map-layers/SidebarLayers.vue index dace42ef..950f41b9 100644 --- a/src/components/map-layers/SidebarLayers.vue +++ b/src/components/map-layers/SidebarLayers.vue @@ -220,13 +220,20 @@ export default { initSortable() { this.baseMaps.forEach((basemap) => { - new Sortable(document.getElementById(`list-${basemap.id}`), { - animation: 150, - handle: ".layer-handle-sort", // The element that is active to drag - ghostClass: "blue-background-class", - dragClass: "white-opacity-background-class", - onEnd: this.onlayerMove.bind(this), - }); + let element=document.getElementById(`list-${basemap.id}`); + if(element) { + new Sortable(element, { + animation: 150, + handle: ".layer-handle-sort", // The element that is active to drag + ghostClass: "blue-background-class", + dragClass: "white-opacity-background-class", + onEnd: this.onlayerMove.bind(this), + }); + } + else{ + console.error(`list-${basemap.id} not found in dom`) + } + }); }, // Check if there are changes in the basemaps settings. Changes are detected if: diff --git a/src/views/feature/Feature_detail.vue b/src/views/feature/Feature_detail.vue index 62c585a0..a3fbb4e1 100644 --- a/src/views/feature/Feature_detail.vue +++ b/src/views/feature/Feature_detail.vue @@ -445,7 +445,6 @@ export default { return status ? status.name : ""; }, }, - filters: { formatDate(value) { let date = new Date(value); @@ -685,8 +684,13 @@ export default { mounted() { this.$store.commit("DISPLAY_LOADER", "Recherche du signalement"); if (!this.project) { - this.$store - .dispatch("GET_PROJECT_INFO", this.$route.params.slug) + // Chargements des features et infos projet en cas d'arrivée directe sur la page ou de refresh + axios.all([ + this.$store + .dispatch("GET_PROJECT_INFO", this.$route.params.slug), + this.$store.dispatch('feature/GET_PROJECT_FEATURES', { + project_slug: this.$route.params.slug + })]) .then(() => { this.$store.commit("DISCARD_LOADER"); this.initMap(); diff --git a/src/views/feature/Feature_list.vue b/src/views/feature/Feature_list.vue index 37a7eda3..81110a2b 100644 --- a/src/views/feature/Feature_list.vue +++ b/src/views/feature/Feature_list.vue @@ -375,11 +375,13 @@ export default { this.zoom = this.$route.query.zoom || ""; this.lat = this.$route.query.lat || ""; this.lng = this.$route.query.lng || ""; + var mapDefaultViewCenter = this.$store.state.configuration.DEFAULT_MAP_VIEW.center; var mapDefaultViewZoom = this.$store.state.configuration.DEFAULT_MAP_VIEW.zoom; + this.map = mapUtil.createMap(this.$refs.map, { zoom: this.zoom, lat: this.lat, @@ -467,14 +469,23 @@ export default { }, }, - created() { - if (!this.project) { - this.$store.dispatch("GET_PROJECT_INFO", this.$route.params.slug); - } - }, mounted() { - this.initMap(); + if (!this.project) { + // Chargements des features et infos projet en cas d'arrivée directe sur la page ou de refresh + axios.all([ + this.$store.dispatch("GET_PROJECT_INFO", this.$route.params.slug), + this.$store.dispatch('feature/GET_PROJECT_FEATURES', { + project_slug: this.$route.params.slug + })]) + .then(() => { + this.initMap(); + }); + } + else { + this.initMap(); + } + }, destroyed() { diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue index a25fec89..2e7066dd 100644 --- a/src/views/project/Project_detail.vue +++ b/src/views/project/Project_detail.vue @@ -395,7 +395,7 @@ > <div class="content"> <div> - <router-link :to="item.related_feature.feature_url" + <router-link :to="getRouteUrl(item.related_feature.feature_url)" >"{{ item.comment }}"</router-link > </div> @@ -605,7 +605,9 @@ export default { refreshId() { return "?ver=" + Math.random(); }, - + getRouteUrl(url){ + return '/'+url.replace(this.$store.state.configuration.BASE_URL,''); // remove duplicate /geocontrib + }, isOffline() { return navigator.onLine === false; }, diff --git a/src/views/project/Project_members.vue b/src/views/project/Project_members.vue index 9745e867..aea8f4b1 100644 --- a/src/views/project/Project_members.vue +++ b/src/views/project/Project_members.vue @@ -290,7 +290,7 @@ export default { // todo: move function to a service return axios .get( - `${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/${this.$route.params.slug}/utilisateurs` + `${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/${this.$route.params.slug}/utilisateurs/` ) .then((response) => response.data) .catch((error) => { -- GitLab