diff --git a/src/store/modules/feature.js b/src/store/modules/feature.js index ecf1c64799bf5daed16e1c3072f4b5c8a2a0645d..bdcd6dab4370c7982779a3d87b9f9764a2614eac 100644 --- a/src/store/modules/feature.js +++ b/src/store/modules/feature.js @@ -120,6 +120,7 @@ const feature = { const message = routeName === "editer-signalement" ? "Le signalement a été mis à jour" : "Le signalement a été crée"; function redirect(featureId) { + dispatch("GET_PROJECT_FEATURES", rootState.project_slug) commit("DISCARD_LOADER", null, { root: true }) router.push({ name: "details-signalement", diff --git a/src/views/feature/Feature_detail.vue b/src/views/feature/Feature_detail.vue index b31ae747f01c276f33016dda3ff41ec61096753f..45d445be091bd323f9b0085ee08cbb152c72fe11 100644 --- a/src/views/feature/Feature_detail.vue +++ b/src/views/feature/Feature_detail.vue @@ -24,7 +24,8 @@ <router-link v-if=" (permissions && permissions.can_update_feature) || - isFeatureCreator + isFeatureCreator || + isModerator " :to="{ name: 'editer-signalement', @@ -39,7 +40,9 @@ </router-link> <!-- (permissions && permissions.can_delete_feature) || --> <a - v-if="isFeatureCreator || permissions.is_project_super_contributor" + v-if=" + isFeatureCreator || permissions.is_project_super_contributor + " @click="isCanceling = true" id="feature-delete" class="ui button button-hover-red" @@ -386,14 +389,14 @@ export default { }, computed: { - ...mapState(["user"]), - ...mapGetters(["permissions"]), + ...mapState(["user", "USER_LEVEL_PROJECTS"]), + ...mapGetters(["permissions", "project"]), ...mapState("feature", ["linked_features", "statusChoices"]), - DJANGO_BASE_URL: function () { + DJANGO_BASE_URL() { return this.$store.state.configuration.VUE_APP_DJANGO_BASE; }, - feature: function () { + feature() { const result = this.$store.state.feature.features.find( (el) => el.feature_id === this.$route.params.slug_signal ); @@ -407,6 +410,13 @@ export default { return false; }, + isModerator() { + return this.USER_LEVEL_PROJECTS && + this.USER_LEVEL_PROJECTS[this.project.slug] === "Modérateur" + ? true + : false; + }, + statusIcon() { switch (this.feature.status) { case "archived": @@ -617,7 +627,12 @@ export default { const feature = response.data; if (feature) { const currentFeature = [feature]; - const featureGroup = mapUtil.addFeatures(currentFeature,{},true,this.$store.state.feature_type.feature_types); + const featureGroup = mapUtil.addFeatures( + currentFeature, + {}, + true, + this.$store.state.feature_type.feature_types + ); mapUtil .getMap() .fitBounds(featureGroup.getBounds(), { padding: [25, 25] });