<template> <div class="fourteen wide column"> <img class="ui centered small image" src="@/assets/img/logo-neogeo-circle.png" /> <!-- :src="LOGO_PATH" --> <h2 class="ui center aligned icon header"> <div class="content"> {{ APPLICATION_NAME }} <div class="sub header">{{ APPLICATION_ABSTRACT }}</div> </div> </h2> <h4 id="les_projets" class="ui horizontal divider header">PROJETS</h4> <!-- //todo : v-if can_create_project --> <router-link v-if="user" :to="{ name: 'project_create', params: { action: 'create' } }" class="ui green basic button" > <i class="plus icon"></i> Créer un nouveau projet </router-link> <!-- //todo : v-if can_create_project --> <router-link v-if="user" :to="{ name: 'project_type_list', }" class="ui blue basic button right floated" > <i class="copy icon"></i> Accéder à la liste des modèles de projets </router-link> <div v-if="projects" class="ui divided items"> <div v-for="project in projects" class="item" :key="project.slug"> <div class="ui tiny image"> <!-- // ? récupérer l'image sur serveur front (et non back) ? --> <img :src=" !project.thumbnail ? require('@/assets/img/default.png') : DJANGO_BASE_URL + project.thumbnail + refreshId() " /> </div> <div class="middle aligned content"> <router-link :to="{ name: 'project_detail', params: { slug: project.slug }, }" class="header" >{{ project.title }}</router-link > <div class="description"> <p>{{ project.description }}</p> </div> <div class="meta"> <span class="right floated"> <strong v-if="project.moderation">Projet modéré</strong> <strong v-else>Projet non modéré</strong> </span> <span >Niveau d'autorisation requis : {{ project.access_level_pub_feature }}</span ><br /> <span> Mon niveau d'autorisation : <span v-if="USER_LEVEL_PROJECTS && project">{{ USER_LEVEL_PROJECTS[project.slug] }}</span> <span v-if="user && user.is_administrator">{{ "+ Gestionnaire métier" }}</span> </span> </div> <div class="meta"> <span class="right floated"> <i class="calendar icon"></i> {{ project.created_on }} </span> <span data-tooltip="Membres"> {{ project.nb_contributors }} <i class="user icon"></i> </span> <span data-tooltip="Signalements"> {{ project.nb_published_features }} <i class="map marker icon" ></i> </span> <span data-tooltip="Commentaires"> {{ project.nb_published_features_comments }} <i class="comment icon" ></i> </span> </div> </div> </div> <span v-if="!projects || projects.length === 0" >Vous n'avez accès à aucun projet.</span > <div class="item"></div> </div> </div> </template> <script> import { mapState } from "vuex"; export default { name: "Index", computed: { ...mapState(["projects", "user", "USER_LEVEL_PROJECTS"]), //LOGO_PATH: () => require(configuration.VUE_APP_LOGO_PATH), APPLICATION_NAME: function () { return this.$store.state.configuration.VUE_APP_APPLICATION_NAME; }, APPLICATION_ABSTRACT:function () { return this.$store.state.configuration.VUE_APP_APPLICATION_ABSTRACT; }, DJANGO_BASE_URL:function () { return this.$store.state.configuration.VUE_APP_DJANGO_BASE; }, }, methods: { refreshId() { //* change path of thumbnail to update image return "?ver=" + Math.random(); }, }, created() { if (this.$store.getters.project) { this.$store.commit("SET_PROJECT_SLUG", null); } }, }; </script>