diff --git a/src/App.vue b/src/App.vue index 349930d3af73b77c5b6e5aea03345776cb02a346..a350dd8e19271586b8e4c59b846a48047e7b8567 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 c0deb2df754b5d0e73b1142a52c8d45d54e639c7..3171439c2262ff1711068dcad8abc6d2d2b21c8e 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 567d47ab2a9d226110ddd3b4574467c24247e24e..cfd82b70d16a14d08c4138848a515550dba02966 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 f3ff33c6acfdc5c150fb01ef3efc8fd1ab35d31e..379fa608c2708203b34037bece57fe1aa6e730af 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 90488ea26afed108904d912e535260b15fd7c0e9..dfa8937c9abfed92bd24493900020aac8916ea56 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 ada30a7ae6bf09fcf00e3bb224a85eb289d779c2..3682133c29342ba5248fe47fdbb368c8185ef656 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 5aed3f7d69d9175da7fb9aa3fb84d954ec500821..715b5c8cbe2492ca7e17d8a1c745c2d631221038 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/`;