From b931d5c40b79522b01e55cf8f88508c837915d1e Mon Sep 17 00:00:00 2001 From: Matthieu Bessat Date: Thu, 16 Jul 2020 09:11:12 +0200 Subject: [PATCH] update --- src/layouts/Admin.vue | 2 +- src/layouts/Delegate.vue | 131 +++++++++++++++++++++++---- src/plugins/vuetify.ts | 10 ++ src/store/index.ts | 15 +-- src/views/Admin/OrganizationList.vue | 13 ++- src/views/Delegate/Gallery.vue | 75 +++++++++------ src/views/Delegate/Main.vue | 3 + src/views/Delegate/Pricing.vue | 8 +- src/views/Delegate/Schedule.vue | 2 +- 9 files changed, 201 insertions(+), 58 deletions(-) diff --git a/src/layouts/Admin.vue b/src/layouts/Admin.vue index 98a08ed..7fa653a 100644 --- a/src/layouts/Admin.vue +++ b/src/layouts/Admin.vue @@ -4,7 +4,7 @@ diff --git a/src/layouts/Delegate.vue b/src/layouts/Delegate.vue index c804506..3550005 100644 --- a/src/layouts/Delegate.vue +++ b/src/layouts/Delegate.vue @@ -2,13 +2,18 @@
- {{ $store.state.delegateAdminName }} + {{ $store.state.delegate.adminName }} - + Publier @@ -44,7 +49,7 @@ v-model="tab" centered show-arrows - slider-color="yellow" + slider-color="accent" ref="tabs" > @@ -71,9 +76,40 @@ + + + + Les changements apportés ont été refusés, vous devez donc les modifiers + + + Pourquoi ? + + + + + Votre association est verrouillé car elle est en attente d'une vérification, même si vous pouvez faire des changements il sera impossible de les sauvegarder. +
- Sauvegarder + + + check_circle + + Sauvegarder +
@@ -108,15 +144,30 @@
- - + + - Publier les modifications apportés à votre association + Demander une vérification humaine -

- Aliquyam est dolores voluptua consetetur stet erat eos sit. Est eirmod ut et voluptua, et sed eos sanctus sit erat. -

+
+

+ Avant que vos changements ne soient publiés et accessibles à l'adresse {{ $store.state.delegatePublicUrl }}, ils doivent être vérifié par la personne en charge de la publication. +

+

+ Veillez à ne pas demander de vérification manuelle trop souvent : veuillez limiter vos demandes. + Nous vous demandons de bien relire vos différentes modifications apportés afin de corriger d'éventuelles erreurs +

+

+ La vérification étant manuelle et prenant du temps humain nous vous demandons de bien vouloir être patient, le résultat de cette vérification sera notifé à l'adresse {{ this.$store.state.delegate.email }}. +

+ + Attention, l'action de demander une vérification entraîne le verouillage de l'association, il ne sera plus possible de faire des modifications sur cette interface jusqu'a ce que vos changements soient validés ou rejectés. + +
+ + Vous ne pouvez pas être publié car vous n'avez pas remplis les champs requis +
Fermer @@ -125,6 +176,25 @@
+ + + + Détails sur le refus de publication + + +

+ Vos changements ont été refusés, veuillez prendre connaissance de la raison : +

+
+ {{ $store.state.delegate.rejectionDescription }} +
+
+ + + Fermer + +
+
@@ -139,7 +209,9 @@ export default { tab: 0, slug: '', canPublish: false, - publishModal: false + publishModal: false, + askingApprovalLoading: false, + rejectionDetailsModal: false }), created () { this.init() @@ -216,9 +288,13 @@ export default { ) { proposedVersion.tag = proposedVersion.tag._id } - this.slug = organization.slug - this.$store.commit('SET_DELEGATE_ADMIN_NAME', organization.adminName) - this.$store.commit('SET_DELEGATE_EMAIL', organization.email) + this.$store.commit('SET_DELEGATE', { + adminName: organization.adminName, + email: organization.email, + publicUrl: process.env.VUE_APP_BASE_URL + '/association/' + organization.slug, + validationState: organization.validationState, + rejectionDescription: organization.rejectionDescription + }) this.$store.commit('SET_DATA', proposedVersion) this.$store.commit('SET_TAGS', tags) this.$nextTick(() => { @@ -287,14 +363,35 @@ export default { } }, goToPage () { - window.open(process.env.VUE_APP_BASE_URL + '/association/' + this.slug, '_blank').focus() + window.open(this.publicUrl, '_blank').focus() }, openPublishModal () { // compute if the user can ask approval this.publishModal = true + const data = this.$store.state.data + this.canPublish = + data.name.length > 0 && + data.descriptionShort.length > 15 }, askApproval () { - this.publishModal = false + this.askingApprovalLoading = true + this.$apitator.post('/delegate/submit', {}, { withAuth: true }).then(res => { + console.log(res.data.data) + this.publishModal = false + this.askingApprovalLoading = false + this.$store.commit('SET_DELEGATE', { validationState: 'pending' }) + this.$store.commit('ADD_ALERT', { + color: 'success', + text: 'Les changements vont êtres soumis à une vérification manuelle' + }) + }).catch(err => { + console.log(err.data) + this.isSaving = false + this.$store.commit('ADD_ALERT', { + color: 'error', + text: "Impossible de soumettre l'association" + }) + }) } } } diff --git a/src/plugins/vuetify.ts b/src/plugins/vuetify.ts index df88afa..6158a78 100644 --- a/src/plugins/vuetify.ts +++ b/src/plugins/vuetify.ts @@ -4,6 +4,7 @@ import fr from 'vuetify/src/locale/fr' import FacebookIcon from '../icons/Facebook.vue' import InstagramIcon from '../icons/Instagram.vue' import TwitterIcon from '../icons/Twitter.vue' +import colors from 'vuetify/lib/util/colors' Vue.use(Vuetify) @@ -24,5 +25,14 @@ export default new Vuetify({ component: InstagramIcon } } + }, + theme: { + themes: { + light: { + primary: colors.orange.darken2, + accent: colors.orange.lighten2, + error: colors.red.darken2 + } + } } }) diff --git a/src/store/index.ts b/src/store/index.ts index c60453c..796d46e 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -33,8 +33,12 @@ export default new Vuex.Store({ phone: '' } }, - delegateAdminName: '', - delegateEmail: '' + delegate: { + validationState: 'none', + admiName: '', + email: '', + publicUrl: '' + } }, mutations: { SET_TITLE (state, payload) { @@ -58,11 +62,8 @@ export default new Vuex.Store({ SET_TAGS (state, payload) { state.tags = payload }, - SET_DELEGATE_ADMIN_NAME (state, payload) { - state.delegateAdminName = payload - }, - SET_DELEGATE_EMAIL (state, payload) { - state.delegateEmail = payload + SET_DELEGATE (state, payload) { + state.delegate = { ...state.delegate, ...payload } } }, actions: { diff --git a/src/views/Admin/OrganizationList.vue b/src/views/Admin/OrganizationList.vue index 34bb276..ae5b600 100644 --- a/src/views/Admin/OrganizationList.vue +++ b/src/views/Admin/OrganizationList.vue @@ -51,6 +51,13 @@ v-model="editedItem.validationState" label="DEBUG: status de la validation" > + +

Remarque : Lorsque vous allez créer cette association un email contenant le lien de connexion va être automatiquement envoyé sur l'adresse renseignée. @@ -298,7 +305,8 @@ export default { const item = { adminName: '', email: '', - validationState: 'none' + validationState: 'none', + rejectionDescription: '' } return { dialog: false, @@ -399,7 +407,8 @@ export default { this.$apitator.put('/admin/organizations/' + this.editedItem._id, { adminName: this.editedItem.adminName, email: this.editedItem.email, - validationState: this.editedItem.validationState + validationState: this.editedItem.validationState, + rejectionDescription: this.editedItem.rejectionDescription }, { withAuth: true }).then(res => { console.log(res.data) this.$store.commit('ADD_ALERT', { diff --git a/src/views/Delegate/Gallery.vue b/src/views/Delegate/Gallery.vue index fca0884..62e16ae 100644 --- a/src/views/Delegate/Gallery.vue +++ b/src/views/Delegate/Gallery.vue @@ -11,14 +11,23 @@ @click="$refs.avatarEditor.toggle()" color="white" >Changer la couverture - clear + + + Supprimer la couverture +

@@ -67,24 +76,38 @@ class="grey darken-4" > - - keyboard_arrow_left - - - keyboard_arrow_right - + + + Décaler vers la gauche + + + + Décaler vers la droite + delete diff --git a/src/views/Delegate/Main.vue b/src/views/Delegate/Main.vue index b48aad4..78ebc2a 100644 --- a/src/views/Delegate/Main.vue +++ b/src/views/Delegate/Main.vue @@ -8,6 +8,9 @@ + + edit + Changer le logo diff --git a/src/views/Delegate/Pricing.vue b/src/views/Delegate/Pricing.vue index 631b59d..bc5c9b8 100644 --- a/src/views/Delegate/Pricing.vue +++ b/src/views/Delegate/Pricing.vue @@ -1,7 +1,7 @@