update
This commit is contained in:
parent
b8d7b53308
commit
4a94799602
11 changed files with 71 additions and 53 deletions
1
index.html
Normal file
1
index.html
Normal file
|
@ -0,0 +1 @@
|
||||||
|
2cf5ddea54d
|
|
@ -1,6 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<v-app>
|
<v-app>
|
||||||
<router-view/>
|
<v-main>
|
||||||
|
<router-view/>
|
||||||
|
</v-main>
|
||||||
<GlobalSnackbar />
|
<GlobalSnackbar />
|
||||||
</v-app>
|
</v-app>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<v-snackbar
|
<v-snackbar
|
||||||
right
|
:right="!$vuetify.breakpoint.mobile"
|
||||||
bottom
|
|
||||||
:color="$store.state.alert.color"
|
:color="$store.state.alert.color"
|
||||||
multi-line
|
:vertical="$vuetify.breakpoint.mobile"
|
||||||
|
:multi-line="$vuetify.breakpoint.mobile"
|
||||||
v-model="$store.state.alert.enabled"
|
v-model="$store.state.alert.enabled"
|
||||||
|
:timeout="500000"
|
||||||
>
|
>
|
||||||
{{ $store.state.alert.text }}
|
{{ $store.state.alert.text }}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<v-main>
|
<div>
|
||||||
<div v-if="enabled">
|
<div v-if="enabled">
|
||||||
<v-app-bar
|
<v-app-bar
|
||||||
app
|
app
|
||||||
|
@ -51,11 +51,11 @@
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<p>
|
<p>
|
||||||
Vous n'êtes pas encore connecté à l'interface d'administration veuillez copier-coller la clée administrateur dans la boîte ci-dessous.
|
Vous n'êtes pas encore connecté à l'interface d'administration veuillez copier-coller la clé administrateur dans la boîte ci-dessous.
|
||||||
</p>
|
</p>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
autofocus
|
autofocus
|
||||||
label="Clée"
|
label="Clé"
|
||||||
v-model="token"
|
v-model="token"
|
||||||
:type="showPassword ? 'text' : 'password'"
|
:type="showPassword ? 'text' : 'password'"
|
||||||
:append-icon="showPassword ? 'mdi-eye' : 'mdi-eye-off'"
|
:append-icon="showPassword ? 'mdi-eye' : 'mdi-eye-off'"
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card>
|
</v-card>
|
||||||
</div>
|
</div>
|
||||||
</v-main>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -120,7 +120,7 @@ export default {
|
||||||
if (this.token !== '') {
|
if (this.token !== '') {
|
||||||
this.$store.commit('ADD_ALERT', {
|
this.$store.commit('ADD_ALERT', {
|
||||||
color: 'error',
|
color: 'error',
|
||||||
text: 'Clée administrateur invalide !'
|
text: 'Clé administrateur invalide !'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<v-main>
|
<div>
|
||||||
<div v-if="enabled">
|
<div v-if="enabled">
|
||||||
<v-toolbar
|
<v-toolbar
|
||||||
color="orange darken-3"
|
color="orange darken-3"
|
||||||
|
@ -53,13 +53,13 @@
|
||||||
ref="tabs"
|
ref="tabs"
|
||||||
>
|
>
|
||||||
<v-tab @click="navigate('DelegateMain')">
|
<v-tab @click="navigate('DelegateMain')">
|
||||||
Résumé
|
Présentation
|
||||||
</v-tab>
|
</v-tab>
|
||||||
<v-tab @click="navigate('DelegateGallery')">
|
<v-tab @click="navigate('DelegateGallery')">
|
||||||
Images/vidéos
|
Images/vidéos
|
||||||
</v-tab>
|
</v-tab>
|
||||||
<v-tab @click="navigate('DelegatePresentation')">
|
<v-tab @click="navigate('DelegatePresentation')">
|
||||||
Présentation
|
Description
|
||||||
</v-tab>
|
</v-tab>
|
||||||
<v-tab @click="navigate('DelegateSchedule')">
|
<v-tab @click="navigate('DelegateSchedule')">
|
||||||
Horaires
|
Horaires
|
||||||
|
@ -125,10 +125,10 @@
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<p>
|
<p>
|
||||||
Vous n'êtes pas encore connecté à l'interface de modification de votre association, veuillez copier-coller la clée qui vous a été envoyé par e-mail dans la boîte ci-dessous.
|
Vous n'êtes pas encore connecté à l'interface de modification de votre association, veuillez copier-coller la clé qui vous a été envoyé par e-mail dans la boîte ci-dessous.
|
||||||
</p>
|
</p>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
label="Clée"
|
label="Clé"
|
||||||
autofocus
|
autofocus
|
||||||
v-model="token"
|
v-model="token"
|
||||||
:type="showPassword ? 'text' : 'password'"
|
:type="showPassword ? 'text' : 'password'"
|
||||||
|
@ -205,7 +205,7 @@
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card>
|
</v-card>
|
||||||
</v-dialog>
|
</v-dialog>
|
||||||
</v-main>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -322,7 +322,7 @@ export default {
|
||||||
if (this.token !== '' || inUrl) {
|
if (this.token !== '' || inUrl) {
|
||||||
this.$store.commit('ADD_ALERT', {
|
this.$store.commit('ADD_ALERT', {
|
||||||
color: 'error',
|
color: 'error',
|
||||||
text: 'Clée invalide !'
|
text: 'Clé invalide !'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -382,7 +382,7 @@ export default {
|
||||||
const data = this.$store.state.data
|
const data = this.$store.state.data
|
||||||
this.canPublish =
|
this.canPublish =
|
||||||
data.name.length > 0 &&
|
data.name.length > 0 &&
|
||||||
data.descriptionShort.length > 15
|
data.descriptionShort.length > 10
|
||||||
},
|
},
|
||||||
askApproval () {
|
askApproval () {
|
||||||
this.askingApprovalLoading = true
|
this.askingApprovalLoading = true
|
||||||
|
|
|
@ -42,17 +42,17 @@
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="editedItem.adminName"
|
v-model="editedItem.adminName"
|
||||||
required
|
required
|
||||||
label="Nom (interne) de l'associatiton">
|
label="Nom de l'associatiton">
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="editedItem.email"
|
v-model="editedItem.email"
|
||||||
label="E-mail utilisé pour recevoir le lien/la clé d'identification">
|
label="E-mail utilisé pour recevoir le lien/la clé d'identification">
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
<v-select
|
<!-- <v-select
|
||||||
:items="validationState"
|
:items="validationState"
|
||||||
v-model="editedItem.validationState"
|
v-model="editedItem.validationState"
|
||||||
label="DEBUG: status de la validation"
|
label="DEBUG: status de la validation"
|
||||||
></v-select>
|
></v-select> -->
|
||||||
<v-textarea
|
<v-textarea
|
||||||
rows="2"
|
rows="2"
|
||||||
row-height="15"
|
row-height="15"
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
</v-chip>
|
</v-chip>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:item.actions="{ item }">
|
<template v-slot:item.actions="{ item }">
|
||||||
<v-tooltip top>
|
<v-tooltip top v-if="item.validationState === 'published' || item.validationState === 'rejected'">
|
||||||
<template v-slot:activator="{ on, attrs }">
|
<template v-slot:activator="{ on, attrs }">
|
||||||
<v-btn icon small color="success">
|
<v-btn icon small color="success">
|
||||||
<v-icon
|
<v-icon
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
</v-icon>
|
</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</template>
|
</template>
|
||||||
<span>Ouvrir la page publique (version non publié)</span>
|
<span>Ouvrir la page publique (version publié)</span>
|
||||||
</v-tooltip>
|
</v-tooltip>
|
||||||
<v-tooltip top>
|
<v-tooltip top>
|
||||||
<template v-slot:activator="{ on, attrs }">
|
<template v-slot:activator="{ on, attrs }">
|
||||||
|
@ -163,11 +163,11 @@
|
||||||
v-bind="attrs"
|
v-bind="attrs"
|
||||||
v-on="on"
|
v-on="on"
|
||||||
>
|
>
|
||||||
done
|
grading
|
||||||
</v-icon>
|
</v-icon>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</template>
|
</template>
|
||||||
<span>Valider les changements</span>
|
<span>Vérifier les changements</span>
|
||||||
</v-tooltip>
|
</v-tooltip>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:no-data>
|
<template v-slot:no-data>
|
||||||
|
@ -207,7 +207,7 @@
|
||||||
</v-list-item-icon>
|
</v-list-item-icon>
|
||||||
<v-list-item-content>
|
<v-list-item-content>
|
||||||
<v-list-item-title>{{ toSeeItem.token }}</v-list-item-title>
|
<v-list-item-title>{{ toSeeItem.token }}</v-list-item-title>
|
||||||
<v-list-item-subtitle>Token/clée</v-list-item-subtitle>
|
<v-list-item-subtitle>Token/clé</v-list-item-subtitle>
|
||||||
</v-list-item-content>
|
</v-list-item-content>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
|
|
||||||
|
@ -285,11 +285,13 @@
|
||||||
:dialogTitle="approveModalTitle"
|
:dialogTitle="approveModalTitle"
|
||||||
@close="approveModal = false"
|
@close="approveModal = false"
|
||||||
>
|
>
|
||||||
<v-btn outlined dark text @click="rejectionModal = true">
|
<v-btn outlined text dark class="error" @click="rejectionModal = true">
|
||||||
<v-icon>clear</v-icon>
|
<v-icon :left="!$vuetify.breakpoint.mobile">rate_review</v-icon>
|
||||||
|
<span v-if="!$vuetify.breakpoint.mobile">Refuser</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
<v-btn outlined dark text @click="approve()">
|
<v-btn outlined text dark class="success" @click="approve()">
|
||||||
<v-icon>done</v-icon>
|
<v-icon :left="!$vuetify.breakpoint.mobile">check_circle</v-icon>
|
||||||
|
<span v-if="!$vuetify.breakpoint.mobile">Publier</span>
|
||||||
</v-btn>
|
</v-btn>
|
||||||
</Preview>
|
</Preview>
|
||||||
<v-dialog max-width="500px" v-model="rejectionModal">
|
<v-dialog max-width="500px" v-model="rejectionModal">
|
||||||
|
@ -325,7 +327,7 @@ export default {
|
||||||
const item = {
|
const item = {
|
||||||
adminName: '',
|
adminName: '',
|
||||||
email: '',
|
email: '',
|
||||||
validationState: 'none',
|
validationState: 'unaware',
|
||||||
rejectionDescription: '',
|
rejectionDescription: '',
|
||||||
slug: ''
|
slug: ''
|
||||||
}
|
}
|
||||||
|
@ -483,19 +485,19 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
generateToken (item) {
|
generateToken (item) {
|
||||||
if (!confirm('Êtes vous sur de reinitialiser la clée de cette association ? Les liens de connexions existants seront inutilisables.')) {
|
if (!confirm('Êtes vous sur de reinitialiser la clé de cette association ? Les liens de connexions existants seront inutilisables.')) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.$apitator.post('/admin/organizations/' + item._id + '/reset-token', {}, { withAuth: true }).then(() => {
|
this.$apitator.post('/admin/organizations/' + item._id + '/reset-token', {}, { withAuth: true }).then(() => {
|
||||||
this.detailsModal = false
|
this.detailsModal = false
|
||||||
this.$store.commit('ADD_ALERT', {
|
this.$store.commit('ADD_ALERT', {
|
||||||
color: 'success',
|
color: 'success',
|
||||||
text: 'La clée de cette association a été reinitialisé'
|
text: 'La clé de cette association a été reinitialisé'
|
||||||
})
|
})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$store.commit('ADD_ALERT', {
|
this.$store.commit('ADD_ALERT', {
|
||||||
color: 'error',
|
color: 'error',
|
||||||
text: 'Impossible de reinitialiser la clée de cette association'
|
text: 'Impossible de reinitialiser la clé de cette association'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
@ -505,7 +507,7 @@ export default {
|
||||||
this.detailsModal = false
|
this.detailsModal = false
|
||||||
this.$store.commit('ADD_ALERT', {
|
this.$store.commit('ADD_ALERT', {
|
||||||
color: 'success',
|
color: 'success',
|
||||||
text: 'Un email va être envoyé à cette association contenant la clée'
|
text: 'Un email va être envoyé à cette association contenant la clé'
|
||||||
})
|
})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.$store.commit('ADD_ALERT', {
|
this.$store.commit('ADD_ALERT', {
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
<span class="headline">{{ formTitle }}</span>
|
<span class="headline">{{ formTitle }}</span>
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
|
<a href="https://fontawesome.com/icons?d=gallery&m=free">https://fontawesome.com/icons?d=gallery&m=free</a>
|
||||||
<v-text-field
|
<v-text-field
|
||||||
v-model="editedItem.name"
|
v-model="editedItem.name"
|
||||||
required
|
required
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
label="Personne responsable"
|
label="Personne responsable"
|
||||||
outlined
|
outlined
|
||||||
v-model="$store.state.data.contacts.person" />
|
v-model="$store.state.data.contacts.person" />
|
||||||
|
|
||||||
<v-text-field
|
<v-text-field
|
||||||
prepend-icon="alternate_email"
|
prepend-icon="alternate_email"
|
||||||
label="Email"
|
label="Email"
|
||||||
|
@ -36,22 +35,26 @@
|
||||||
prepend-icon="room"
|
prepend-icon="room"
|
||||||
label="Adresse"
|
label="Adresse"
|
||||||
outlined
|
outlined
|
||||||
v-model="$store.state.data.contacts.address" />
|
v-model="$store.state.data.contacts.address"
|
||||||
|
:rules="rules.address" />
|
||||||
<v-text-field
|
<v-text-field
|
||||||
prepend-icon="$vuetify.icons.facebook"
|
prepend-icon="$vuetify.icons.facebook"
|
||||||
label="Compte facebook"
|
label="Compte facebook"
|
||||||
outlined
|
outlined
|
||||||
v-model="$store.state.data.contacts.facebook" />
|
v-model="$store.state.data.contacts.facebook"
|
||||||
|
:rules="rules.facebook" />
|
||||||
<v-text-field
|
<v-text-field
|
||||||
prepend-icon="$vuetify.icons.twitter"
|
prepend-icon="$vuetify.icons.twitter"
|
||||||
label="Compte twitter"
|
label="Compte twitter"
|
||||||
outlined
|
outlined
|
||||||
v-model="$store.state.data.contacts.twitter" />
|
v-model="$store.state.data.contacts.twitter"
|
||||||
|
:rules="rules.twitter" />
|
||||||
<v-text-field
|
<v-text-field
|
||||||
prepend-icon="$vuetify.icons.instagram"
|
prepend-icon="$vuetify.icons.instagram"
|
||||||
label="Compte instagram"
|
label="Compte instagram"
|
||||||
outlined
|
outlined
|
||||||
v-model="$store.state.data.contacts.instagram" />
|
v-model="$store.state.data.contacts.instagram"
|
||||||
|
:rules="rules.instagram" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -59,17 +62,23 @@
|
||||||
export default {
|
export default {
|
||||||
data: () => ({
|
data: () => ({
|
||||||
rules: {
|
rules: {
|
||||||
|
website: [
|
||||||
|
v => v === '' || /.+@.+\..+/.test(v) || "L'email doit être valide"
|
||||||
|
],
|
||||||
email: [
|
email: [
|
||||||
v => /.+@.+\..+/.test(v) || "L'email doit être valide"
|
v => v === '' || /.+@.+\..+/.test(v) || "L'email doit être valide"
|
||||||
|
],
|
||||||
|
address: [
|
||||||
|
v => v.length < 200 || 'Maximum 200 caractères'
|
||||||
],
|
],
|
||||||
facebook: [
|
facebook: [
|
||||||
v => /(http(s)?:\/\/)?(www\.)?facebook\.com\/(\S+){3,}/.test(v) || 'Ce champs doit être une url facebook valide'
|
v => v === '' || /(http(s)?:\/\/)?(www\.)?facebook\.com\/(\S+){3,}/g.test(v) || 'Ce champs doit être une url facebook valide'
|
||||||
],
|
],
|
||||||
twitter: [
|
twitter: [
|
||||||
v => /(http(s)?:\/\/)?(www\.)?twitter\.com\/(\S+){3,}/.test(v) || 'Ce champs doit être une url twitter valide'
|
v => v === '' || /(http(s)?:\/\/)?(www\.)?twitter\.com\/(\S+){3,}/g.test(v) || 'Ce champs doit être une url twitter valide'
|
||||||
],
|
],
|
||||||
instagram: [
|
instagram: [
|
||||||
v => /(http(s)?:\/\/)?(www\.)?instagram\.com\/(\S+){3,}/.test(v) || 'Ce champs doit être une url instagram valide'
|
v => v === '' || /(http(s)?:\/\/)?(www\.)?instagram\.com\/(\S+){3,}/g.test(v) || 'Ce champs doit être une url instagram valide'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
|
@ -63,6 +63,13 @@ export default {
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// mounted () {
|
||||||
|
// this.$store.commit('ADD_ALERT', {
|
||||||
|
// color: 'error',
|
||||||
|
// text: 'Dolor sadipscing tempor consetetur et tempor accusam nonumy. Ut sit nonumy magna ea aliquyam no. Elitr et elitr est ut,.'
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
handleAvatarEditorSubmitted: function (blob) {
|
handleAvatarEditorSubmitted: function (blob) {
|
||||||
const form = new FormData()
|
const form = new FormData()
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
outlined
|
outlined
|
||||||
type="info"
|
type="info"
|
||||||
>
|
>
|
||||||
Aucune catégorie horaires ajoutées pour le moment
|
Aucun tarifs ajoutée pour le moment
|
||||||
</v-alert>
|
</v-alert>
|
||||||
</div>
|
</div>
|
||||||
<v-row v-else class="justify-content: center">
|
<v-row v-else class="justify-content: center">
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
outlined
|
outlined
|
||||||
type="info"
|
type="info"
|
||||||
>
|
>
|
||||||
Aucune catégorie horaires ajoutées pour le moment
|
Aucune catégorie horaire ajoutée pour le moment
|
||||||
</v-alert>
|
</v-alert>
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
</div>
|
</div>
|
||||||
</v-list>
|
</v-list>
|
||||||
<div v-else class="grey--text text--darken-1">
|
<div v-else class="grey--text text--darken-1">
|
||||||
Pas d'interval horaires pour cette catégorie pour l'instant
|
Pas d'intervalles horaires pour cette catégorie pour l'instant
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -151,7 +151,7 @@
|
||||||
max-width="500px"
|
max-width="500px"
|
||||||
v-model="whenModal">
|
v-model="whenModal">
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-title v-text="modalTitle + ' un interval horaire'" />
|
<v-card-title v-text="modalTitle + ' un intervalle horaire'" />
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-select
|
<v-select
|
||||||
prepend-icon="event"
|
prepend-icon="event"
|
||||||
|
@ -233,7 +233,7 @@
|
||||||
v-model="deleteWhenModal">
|
v-model="deleteWhenModal">
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-card-title>
|
<v-card-title>
|
||||||
Voulez vous vraiment supprimer cette interval horaire ?
|
Voulez vous vraiment supprimer cette intervalle horaire ?
|
||||||
</v-card-title>
|
</v-card-title>
|
||||||
<v-card-actions>
|
<v-card-actions>
|
||||||
<v-btn @click="deleteWhenModal = false" text color="primary">
|
<v-btn @click="deleteWhenModal = false" text color="primary">
|
||||||
|
@ -425,11 +425,6 @@ export default {
|
||||||
return i
|
return i
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
this.when = {
|
|
||||||
day: '',
|
|
||||||
from: '10:00',
|
|
||||||
to: '11:00'
|
|
||||||
}
|
|
||||||
this.$store.commit('SET_DATA', { schedule })
|
this.$store.commit('SET_DATA', { schedule })
|
||||||
this.whenModal = false
|
this.whenModal = false
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue