From dbc5a34afe9e9ad890b06660bfadc075957d3b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poussard?= <tpoussard@neogeo.fr> Date: Wed, 25 Aug 2021 10:54:39 +0200 Subject: [PATCH] format date for derniers signalements, detect click outside menu dropdown and remove store mock data --- src/App.vue | 11 +++++ src/store/modules/feature.js | 64 +--------------------------- src/store/modules/feature_type.js | 33 +------------- src/views/project/Project_detail.vue | 25 +++++++---- 4 files changed, 31 insertions(+), 102 deletions(-) diff --git a/src/App.vue b/src/App.vue index f3850df8..fea08926 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,6 +14,7 @@ </router-link> <div + id="menu-dropdown" :class="['ui dropdown item', { 'active visible': menuIsOpen }]" v-if="project" @click="menuIsOpen = !menuIsOpen" @@ -163,6 +164,16 @@ export default { logout() { this.$store.dispatch("LOGOUT"); }, + clickOutsideMenu(e) { + if (!e.target.closest("#menu-dropdown")) this.menuIsOpen = false; + }, + }, + created() { + window.addEventListener("mousedown", this.clickOutsideMenu); + }, + + beforeDestroy() { + window.removeEventListener("mousedown", this.clickOutsideMenu); }, }; </script> diff --git a/src/store/modules/feature.js b/src/store/modules/feature.js index 5db97dba..50c56a5c 100644 --- a/src/store/modules/feature.js +++ b/src/store/modules/feature.js @@ -3,69 +3,7 @@ const feature = { state: { attachmentFormset: [], linkedFormset: [], - features: [ // TODO: récupérer dans api - { - status: "archived", - title: "What the title !", - description: - "Very very very very very loooooooooooooong tiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiittttttttttttttlllllllllllllllllllllllllllllllleeeeeeeeeeeeeeeeeeeeee, isn't it ? 987653210", - created_on: "16/08/2021", - display_creator: "Babar", - feature_type: { - geom_type: "point", - title: "Éolienne", - is_editable: true, - } - }, - { - status: "pending", - title: "Éolienne offshore", - description: "Feature pending", - created_on: "16/08/2021", - display_creator: "Babar", - feature_type: { - geom_type: "point", - title: "Éolienne", - is_editable: true, - } - }, - { - status: "published", - title: "Éolienne privé", - description: "Feature published", - created_on: "16/08/2021", - display_creator: "Babar", - feature_type: { - geom_type: "point", - title: "Éolienne", - is_editable: true, - } - }, - { - status: "published", - title: "Zac", - description: "Feature published", - created_on: "18/08/2021", - display_creator: "Winnie l'ourson", - feature_type: { - geom_type: "polygon", - title: "Zone de zonage", - is_editable: true, - } - }, - { - status: "draft", - title: "Éolienne terrestre", - description: "Fedraft description", - created_on: "16/08/2021", - display_creator: "Babar", - feature_type: { - geom_type: "point", - title: "Éolienne", - is_editable: true, - } - }, - ], + features: [], form: null, extra_form: [ { diff --git a/src/store/modules/feature_type.js b/src/store/modules/feature_type.js index 070498e0..c347654c 100644 --- a/src/store/modules/feature_type.js +++ b/src/store/modules/feature_type.js @@ -9,36 +9,7 @@ const feature_type = { colorsStyleList: [], customForms: [], current_feature_type_slug: null, - feature_types: [ // TODO: récupérer a partir du projet depuis api - { - geom_type: "point", - title: "Éolienne", - is_editable: true, - slug: "1-Éolienne", - feature_type: "1" - }, - { - geom_type: "linestring", - title: "Limite illimitée", - is_editable: true, - slug: "3-Limite-illimitée", - feature_type: "3" - }, - { - geom_type: "polygon", - title: "Zone de zonage", - is_editable: true, - slug: "8-Zone-de-zonage", - feature_type: "8" - }, - { - geom_type: "polygon", - title: "Signalement en nuevo proyecto", - is_editable: true, - slug: "11-signalement-en-nuevo-proyecto", - feature_type: "11" - } - ], + feature_types: [], }, mutations: { SET_FEATURE_TYPES(state, feature_types) { @@ -82,7 +53,7 @@ const feature_type = { axios .post(`${process.env.VUE_APP_DJANGO_API_BASE}feature_type/`, data) .then((response) => { - const routerHistory = this.$router.options.routerHistory + const routerHistory = this.$router.options.routerHistory store.commit("SET_USER", response.data.user); this.$router.push(routerHistory[routerHistory.length - 1] || "/") store.dispatch("GET_USER_LEVEL_PROJECTS"); diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue index 9a440bdf..64fb1d1b 100644 --- a/src/views/project/Project_detail.vue +++ b/src/views/project/Project_detail.vue @@ -237,7 +237,6 @@ <div class="center aligned header">Derniers signalements</div> <div class="center aligned description"> <div class="ui relaxed list"> - <!-- {% for item in last_features %} --> <div v-for="(item, index) in last_features" :key="item.title + index" @@ -251,7 +250,7 @@ params: { slug: project.slug, slug_type_signal: item.feature_type.title, - slug_signal: item.title, + slug_signal: item.feature_id, }, }" >{{ item.title }}</router-link @@ -259,8 +258,8 @@ </div> <div class="description"> <i - >[{{ item.created_on - }}<span v-if="user" + >[{{ item.created_on | setDate + }}<span v-if="user && item.display_creator" >, par {{ item.display_creator }} </span> ]</i @@ -287,16 +286,14 @@ > <div class="content"> <div> - <!-- // todo : adapt --> - <router-link - :to="item.related_feature.feature_url" + <router-link :to="item.related_feature.feature_url" >"{{ item.comment }}"</router-link > </div> <div class="description"> <i >[ {{ item.created_on - }}<span v-if="user" + }}<span v-if="user && item.display_author" >, par {{ item.display_author }} </span> ]</i @@ -458,6 +455,18 @@ export default { frag, }, + filters: { + setDate: function (value) { + let date = new Date(value); + let d = date.toLocaleDateString("fr", { + year: "2-digit", + month: "numeric", + day: "numeric", + }); + return d; + }, + }, + data() { return { filenameToImport: { name: "", size: 0 }, -- GitLab