diff --git a/frontend/components/viewer/CommentAddForm.vue b/frontend/components/viewer/CommentAddForm.vue index e0bce76..4a677a0 100644 --- a/frontend/components/viewer/CommentAddForm.vue +++ b/frontend/components/viewer/CommentAddForm.vue @@ -3,7 +3,7 @@ label="Nouveau commentaire" rounded outlined - @click="formVisible=true" + @click="openForm('comment')" > @@ -15,17 +15,33 @@ - + + + + Demander une modification + + @@ -54,6 +70,68 @@ /> + + + + + + + Type de modification + + + -- Veuillez choisir -- + + + Cessation d'activité + + + Déménagement + + + Erreur dans les informations (horaires, coordonnées, etc.) + + + Autre + + + + + + Commentaire supplémentaire + + + + + + + + ), ) +// Définition du type de formulaire (ajout de commentaire ou demande de modification) +const formType = ref<'comment' | 'edit'>('comment') + +// Fonction d'ouverture du formulaire avec le type spécifié +function openForm(type: 'comment' | 'edit') { + formType.value = type + formVisible.value = true +} + +// Définition des références pour la demande de modification +const editRequest = ref({ + author: '', + type: '', + text: '', +}) + function reset_refs(new_entity_id: string) { editedComment.value = { author: '', @@ -225,7 +319,7 @@ async function realOnSave(token: string | null) { toast.add({ severity: 'success', summary: 'Succès', - detail: 'Commentaire modifié avec succès', + detail: 'Commentaire envoyé avec succès', life: 3000, }) reset_refs(props.entity.id) @@ -240,4 +334,50 @@ async function realOnSave(token: string | null) { } processingRequest.value = false } + +// Fonction d'envoi de la demande de modification de l'entité +async function sendEditRequest() { + processingRequest.value = true + + try { + // Construction du message final + const finalMessage + = `Bonjour, une modification a été demandée pour cette fiche : ${editRequest.value.type}\n\n` + + `${editRequest.value.text || ''}` + + // Envoi au backend + await state.client.createComment({ + comment: { + author: editRequest.value.author, + entity_id: props.entity.id, + entity_category_id: props.entity.category_id, + text: finalMessage, + data: {}, + }, + }) + + // Affichage d'un message de succès + toast.add({ + severity: 'success', + summary: 'Envoyé', + detail: 'Votre demande de modification a été envoyée.', + life: 3000, + }) + + // Reset formulaire + formVisible.value = false + editRequest.value = { author: '', type: '', text: '' } + } + // Affichage d'un message d'erreur en cas d'echec de l'envoi + catch { + toast.add({ + severity: 'error', + summary: 'Erreur', + detail: 'Impossible d’envoyer la demande.', + life: 3000, + }) + } + + processingRequest.value = false +}