diff --git a/src/App.vue b/src/App.vue index 9aecfde05cf40539810e6f6dfd7d963f572444ee..95966e80c5a44d291435c2dad5841c3c49efca65 100644 --- a/src/App.vue +++ b/src/App.vue @@ -92,7 +92,7 @@ <div class="mobile"> <router-link v-if="user" - to="/my_account/" + :to="{name: 'my_account', params: { slug: $route.params.slug ? $route.params.slug : '-' }}" class="item" > {{ userFullname || user.username || "Utilisateur inconnu" }} @@ -145,8 +145,8 @@ <div class="desktop flex push-right-desktop"> <router-link v-if="user" - :to="{name: isSharedProject ? '' : 'my_account'}" - :class="['item', {disable: isSharedProject}]" + :to="{name: 'my_account', params: { slug: $route.params.slug ? $route.params.slug : '-' }}" + class="item" > {{ userFullname || user.username || "Utilisateur inconnu" }} </router-link> diff --git a/src/router/index.js b/src/router/index.js index 3a60b4cb03aae86a9675ecf3375298e6ac0bf7c5..7126661bbe5fce42801e33aaec16ffdd573eb7b2 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -24,7 +24,7 @@ const routes = [ component: () => import(/* webpackChunkName: "login" */'../views/registration/Login.vue') }, { - path: `${projectBase === 'projet' ? '': '/' + projectBase}/my_account/`, + path: `${projectBase === 'projet' ? '': '/' + projectBase + '/:slug'}/my_account/`, name: 'my_account', component: () => import('../views/My_account.vue') }, diff --git a/src/views/My_account.vue b/src/views/My_account.vue index 02e07ea6567e51c5ec2ffa90d5357bdb36d0156d..7d3f2917449f5c2e63d6a9f74738a66769459401 100644 --- a/src/views/My_account.vue +++ b/src/views/My_account.vue @@ -60,7 +60,7 @@ <div class="ui divided items"> <div - v-for="project in projects" + v-for="project in availableProjects" :key="project.slug" class="item" > @@ -156,25 +156,27 @@ <div v-if="item.event_type === 'create'"> <a v-if="item.object_type === 'feature'" - :href="item.related_feature.feature_url" + :href="modifyUrl(item.related_feature.feature_url)" > - Signalement créé + <span> + Signalement créé + </span> </a> <a v-else-if="item.object_type === 'comment'" - :href="item.related_feature.feature_url" + :href="modifyUrl(item.related_feature.feature_url)" > Commentaire créé </a> <a v-else-if="item.object_type === 'attachment'" - :href="item.related_feature.feature_url" + :href="modifyUrl(item.related_feature.feature_url)" > Pièce jointe ajoutée </a> <a v-else-if="item.object_type === 'project'" - :href="item.project_url" + :href="modifyUrl(item.project_url)" > Projet créé </a> @@ -183,13 +185,13 @@ <div v-else-if="item.event_type === 'update'"> <a v-if="item.object_type === 'feature'" - :href="item.related_feature.project_url" + :href="modifyUrl(item.related_feature.project_url)" > Signalement mis à jour </a> <a v-else-if="item.object_type === 'project'" - :href="item.project_url" + :href="modifyUrl(item.project_url)" >à Projet mis à jour </a> </div> @@ -232,7 +234,7 @@ <div> <a v-if="item.related_feature" - :href="item.related_feature.feature_url" + :href="modifyUrl(item.related_feature.feature_url)" >{{ item.related_feature.title }}</a> <span v-else> {{ item.data.feature_title }} (supprimé) @@ -269,7 +271,7 @@ <div class="content"> <div> <a - :href="item.related_feature.feature_url" + :href="modifyUrl(item.related_feature.feature_url)" >"{{ item.related_comment.comment }}"</a> </div> <div class="description"> @@ -314,24 +316,36 @@ export default { }, computed: { - // todo : filter projects to user ...mapState([ 'user', 'USER_LEVEL_PROJECTS', 'user_permissions', ]), + + // todo : filter projects to user ...mapState('projects', [ 'projects' ]), - DJANGO_BASE_URL: function () { + + DJANGO_BASE_URL() { return this.$store.state.configuration.VUE_APP_DJANGO_BASE; }, - userFullname: function () { + + userFullname() { if (this.user.first_name || this.user.last_name) return this.user.first_name + ' ' + this.user.last_name; return null; }, + + availableProjects() { + console.log(this.$route.path); + if (this.$route.path.includes('projet-partage')) { + return this.projects.filter((el) => el.slug === this.$route.params.slug); + } + return this.projects; + } }, + created(){ this.getEvents(); }, @@ -340,17 +354,26 @@ export default { refreshId() { return '?ver=' + Math.random(); }, + setEvents(data){ this.events = data.events; this.features = data.features; this.comments = data.comments; }, + getEvents(){ this.$store .dispatch('USER_EVENTS') .then((data)=>{ this.setEvents(data); }); + }, + + modifyUrl(url) { + if (this.$route.path.includes('projet-partage')) { + return url.replace('projet', 'projet-partage'); + } + return url; } } };