From 15f91b520e1d20a41e0d747937679ae138f7f9b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poussard?= <tpoussard@neogeo.fr> Date: Fri, 7 Jan 2022 11:58:29 +0100 Subject: [PATCH] add share link checkbox &change cursor hover checkboxes label --- src/App.vue | 16 ++++++++++-- src/components/feature/FeatureExtraForm.vue | 1 + .../project/ProjectMappingContextLayer.vue | 2 +- src/store/index.js | 1 + src/views/feature_type/Feature_type_edit.vue | 4 ++- src/views/project/Project_detail.vue | 5 +++- src/views/project/Project_edit.vue | 25 +++++++++++++------ 7 files changed, 41 insertions(+), 13 deletions(-) diff --git a/src/App.vue b/src/App.vue index 349930d3..a350dd8e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -10,7 +10,10 @@ <header class="header-menu"> <div class="menu container"> <div class="ui inverted icon menu"> - <router-link to="/" class="header item"> + <router-link + :to="isSharedProject ? '' : '/'" + :class="['header item', {disable: isSharedProject}]" + > <img class="ui mini right spaced image" :src="logo" /> <span class="desktop"> {{ APPLICATION_NAME }} @@ -246,6 +249,9 @@ export default { ? true : false; }, + isSharedProject() { + return this.$route.path.includes('projet-partage'); + } }, methods: { @@ -425,4 +431,10 @@ footer { } </style> - \ No newline at end of file + + <style scoped> + .disable:hover { + cursor: default !important; + background-color: #373636 !important; + } + </style> \ No newline at end of file diff --git a/src/components/feature/FeatureExtraForm.vue b/src/components/feature/FeatureExtraForm.vue index c0deb2df..3171439c 100644 --- a/src/components/feature/FeatureExtraForm.vue +++ b/src/components/feature/FeatureExtraForm.vue @@ -34,6 +34,7 @@ <div v-frag v-else-if="field.field_type === 'boolean'"> <div class="ui checkbox"> <input + class="hidden" type="checkbox" :checked="field.value" :name="field.name" diff --git a/src/components/project/ProjectMappingContextLayer.vue b/src/components/project/ProjectMappingContextLayer.vue index 567d47ab..cfd82b70 100644 --- a/src/components/project/ProjectMappingContextLayer.vue +++ b/src/components/project/ProjectMappingContextLayer.vue @@ -39,7 +39,7 @@ @click="updateLayer({ ...layer, queryable: !layer.queryable })" class="ui checkbox" > - <input type="checkbox" v-model="layer.queryable" name="queryable" /> + <input class="hidden" type="checkbox" v-model="layer.queryable" name="queryable" /> <label for="queryable"> Requêtable</label> </div> <!-- {{ form.queryable.errors }} --> diff --git a/src/store/index.js b/src/store/index.js index f3ff33c6..379fa608 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -132,6 +132,7 @@ export default new Vuex.Store({ getters: { project: state => state.projects.find((project) => project.slug === state.project_slug), permissions: state => state.user_permissions ? state.user_permissions[state.project_slug] : noPermissions, + // TODO: utiliser et créer point api depuis ProjectTypeListView lors du passage à la pagination des projets project_types: state => state.projects.filter(projet => projet.is_project_type), project_user: state => state.projects.filter(projet => projet.creator === state.user.id), }, diff --git a/src/views/feature_type/Feature_type_edit.vue b/src/views/feature_type/Feature_type_edit.vue index 90488ea2..dfa8937c 100644 --- a/src/views/feature_type/Feature_type_edit.vue +++ b/src/views/feature_type/Feature_type_edit.vue @@ -80,11 +80,13 @@ <div class="field"> <div class="ui checkbox"> <input + class="hidden" + :id="form.title_optional.html_name" :name="form.title_optional.html_name" v-model="form.title_optional.value" type="checkbox" /> - <label>{{ form.title_optional.label }}</label> + <label :for="form.title_optional.html_name">{{ form.title_optional.label }}</label> </div> </div> diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue index ada30a7a..3682133c 100644 --- a/src/views/project/Project_detail.vue +++ b/src/views/project/Project_detail.vue @@ -94,7 +94,7 @@ <i class="inverted grey pencil alternate icon"></i> </router-link> <button - v-if="!$route.path.includes('projet-partage')" class="ui button teal" @click="copyLink"> + v-if="!isSharedProject && project.generate_share_link" class="ui button teal" @click="copyLink"> <i class="ui icon clipboard"></i> Copier le lien de partage </button> @@ -690,6 +690,9 @@ export default { }, fileSize() { return fileConvertSizeToMo(this.fileToImport.size); + }, + isSharedProject() { + return this.$route.path.includes('projet-partage'); } }, diff --git a/src/views/project/Project_edit.vue b/src/views/project/Project_edit.vue index 5aed3f7d..715b5c8c 100644 --- a/src/views/project/Project_edit.vue +++ b/src/views/project/Project_edit.vue @@ -158,6 +158,7 @@ <div class="field"> <div class="ui checkbox"> <input + class="hidden" type="checkbox" v-model="form.moderation" name="moderation" @@ -165,12 +166,12 @@ /> <label for="moderation">Modération</label> </div> - <!-- {{ form.moderation.errors }} --> </div> <div class="field"> <div class="ui checkbox"> <input + class="hidden" type="checkbox" v-model="form.is_project_type" name="is_project_type" @@ -178,7 +179,19 @@ /> <label for="is_project_type">Est un projet type</label> </div> - <!-- {{ form.is_project_type.errors }} --> + </div> + + <div class="field"> + <div class="ui checkbox"> + <input + class="hidden" + type="checkbox" + v-model="form.generate_share_link" + name="generate_share_link" + id="generate_share_link" + /> + <label for="generate_share_link">Génération d'un lien de partage externe</label> + </div> </div> <div class="ui divider"></div> @@ -196,12 +209,6 @@ import Dropdown from "@/components/Dropdown.vue"; import { mapState, mapGetters } from "vuex"; -// axios.defaults.headers.common["X-CSRFToken"] = ((name) => { -// var re = new RegExp(name + "=([^;]+)"); -// var value = re.exec(document.cookie); -// return value !== null ? unescape(value[1]) : null; -// })("csrftoken"); - export default { name: "Project_edit", @@ -244,6 +251,7 @@ export default { nb_published_features_comments: 0, nb_contributors: 0, is_project_type: false, + generate_share_link: false, }, thumbnailFileSrc: "", }; @@ -449,6 +457,7 @@ export default { archive_feature: this.form.archive_feature, delete_feature: this.form.delete_feature, is_project_type: this.form.is_project_type, + generate_share_link: this.form.generate_share_link, moderation: this.form.moderation, }; let url = `${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/`; -- GitLab