From c73af19f09ce27805d77fa0495bb963a54ca7464 Mon Sep 17 00:00:00 2001 From: leandro <leandroalmada86@gmail.com> Date: Mon, 27 Sep 2021 10:00:12 +0200 Subject: [PATCH] add filter status feature --- src/views/feature/Feature_edit.vue | 35 ++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/src/views/feature/Feature_edit.vue b/src/views/feature/Feature_edit.vue index 900bb1b0..42ba0792 100644 --- a/src/views/feature/Feature_edit.vue +++ b/src/views/feature/Feature_edit.vue @@ -41,7 +41,7 @@ form.status.label }}</label> <Dropdown - :options="statusChoices" + :options="statusChoicesFilter" :selected="selected_status.name" :selection.sync="selected_status" /> @@ -272,13 +272,24 @@ export default { erreurUploadMessage: null, attachmentDataKey: 0, linkedDataKey: 0, + statusChoicesFilter:[], statusChoices: [ { name: "Brouillon", value: "draft", }, - { name: "Publié", value: "published" }, - { name: "Archivé", value: "archived" }, + { + name: "Publié", + value: "published" + }, + { + name: "Archivé", + value: "archived" + }, + { + name: "En attente de publication", + value: "pending" + }, ], form: { title: { @@ -317,7 +328,7 @@ export default { }, computed: { - ...mapState(["project"]), + // ...mapState(["project"]), ...mapState("map", ["basemaps"]), ...mapState("feature", [ "attachmentFormset", @@ -372,6 +383,20 @@ export default { }, methods: { + makeStatusChoicesFilter(){ + let newStatusChoices = this.statusChoices + if (this.project){ + if (!this.project.moderation){ + newStatusChoices = [] + this.statusChoices.forEach(function(status) { + if (status.value !== 'pending') { + newStatusChoices.push(status) + } + }); + } + } + this.statusChoicesFilter = newStatusChoices + }, initForm() { if (this.currentRouteName === "editer-signalement") { for (let key in this.feature) { @@ -858,6 +883,8 @@ export default { created() { if (!this.project) { + this.project = this.$store.state.projects.find((project) => project.slug === this.$store.state.project_slug); + this.makeStatusChoicesFilter(); this.$store.dispatch("GET_PROJECT_INFO", this.$route.params.slug); } this.$store.commit( -- GitLab