From 94fed67d1908d66070666e4fb29d785848469ae1 Mon Sep 17 00:00:00 2001 From: Manus Date: Thu, 22 Jan 2026 08:33:07 -0500 Subject: [PATCH] =?UTF-8?q?Checkpoint:=20=E2=9C=85=20Modification=20de=20l?= =?UTF-8?q?a=20bo=C3=AEte=20de=20dialogue=20de=20test=20de=20rappels=20-?= =?UTF-8?q?=20Ajout=20d'un=20champ=20de=20saisie=20pour=20l'email=20du=20d?= =?UTF-8?q?estinataire=20-=20Modification=20du=20texte=20:=20"Tous=20les?= =?UTF-8?q?=20rappels=20configur=C3=A9s=20pour=20cette=20s=C3=A9quence=20s?= =?UTF-8?q?eront=20envoy=C3=A9s=20=C3=A0=20l'adresse=20email=20que=20vous?= =?UTF-8?q?=20indiquez=20ci-dessous"=20-=20Validation=20de=20l'email=20ava?= =?UTF-8?q?nt=20envoi=20-=20Backend=20modifi=C3=A9=20pour=20envoyer=20?= =?UTF-8?q?=C3=A0=20l'email=20saisi=20au=20lieu=20de=20tous=20les=20inscri?= =?UTF-8?q?ts=20-=20Les=20logs=20enregistrent=20correctement=20l'email=20d?= =?UTF-8?q?e=20test=20utilis=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/pages/AdminSequences.tsx | 33 +++++++++++++++++++++++++---- server/routers.ts | 24 +++++++++++++-------- todo.md | 1 + 3 files changed, 45 insertions(+), 13 deletions(-) diff --git a/client/src/pages/AdminSequences.tsx b/client/src/pages/AdminSequences.tsx index 83145df..ef5a935 100644 --- a/client/src/pages/AdminSequences.tsx +++ b/client/src/pages/AdminSequences.tsx @@ -35,6 +35,7 @@ export default function AdminSequences() { const [isCompactView, setIsCompactView] = useState(true); const [isConfirmTestOpen, setIsConfirmTestOpen] = useState(false); const [sequenceToTest, setSequenceToTest] = useState(null); + const [testEmail, setTestEmail] = useState(""); const [formData, setFormData] = useState({ formationId: "", @@ -94,17 +95,20 @@ export default function AdminSequences() { toast.success("Email de test envoyé avec succès"); setIsConfirmTestOpen(false); setSequenceToTest(null); + setTestEmail(""); }, onError: (error) => { toast.error(`Erreur lors de l'envoi du test : ${error.message}`); setIsConfirmTestOpen(false); setSequenceToTest(null); + setTestEmail(""); }, }); const handleTestRappel = (sequenceId: number, sequence: any) => { if (sequence.dates && sequence.dates.length > 0) { setSequenceToTest(sequenceId); + setTestEmail(""); // Réinitialiser l'email setIsConfirmTestOpen(true); } else { toast.error("Cette séquence n'a pas de dates configurées"); @@ -113,7 +117,14 @@ export default function AdminSequences() { const confirmTestRappel = () => { if (sequenceToTest !== null) { - testerRappelMutation.mutate({ sequenceId: sequenceToTest }); + if (!testEmail || !testEmail.includes('@')) { + toast.error("Veuillez saisir une adresse email valide"); + return; + } + testerRappelMutation.mutate({ + sequenceId: sequenceToTest, + emailTest: testEmail + }); } }; @@ -1076,17 +1087,31 @@ export default function AdminSequences() { - Confirmer l'envoi du test + Tester l'envoi de rappels - Êtes-vous sûr de vouloir envoyer un email de test de rappel à tous les apprenants inscrits confirmés de cette séquence ? + Tous les rappels configurés pour cette séquence seront envoyés à l'adresse email que vous indiquez ci-dessous. -
+
+
+ + setTestEmail(e.target.value)} + disabled={testerRappelMutation.isPending} + /> +
+
+