From 03006051a9453e0aa8e1b702eb1902be75e2d2b8 Mon Sep 17 00:00:00 2001 From: jeremy bayse Date: Wed, 25 Mar 2026 19:19:30 +0100 Subject: [PATCH] UI: use modal for AI analysis errors --- resources/js/Pages/Admin/Candidates/Show.vue | 34 ++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/resources/js/Pages/Admin/Candidates/Show.vue b/resources/js/Pages/Admin/Candidates/Show.vue index ed58ae3..476ac46 100644 --- a/resources/js/Pages/Admin/Candidates/Show.vue +++ b/resources/js/Pages/Admin/Candidates/Show.vue @@ -126,9 +126,14 @@ const aiAnalysis = ref(props.candidate.ai_analysis || null); const isAnalyzing = ref(false); const selectedProvider = ref(props.ai_config?.default || 'ollama'); +// Error Modal state +const showErrorModal = ref(false); +const modalErrorMessage = ref(""); + const runAI = async () => { if (!props.candidate.job_position_id) { - alert("Veuillez d'abord associer une fiche de poste à ce candidat."); + modalErrorMessage.value = "Veuillez d'abord associer une fiche de poste à ce candidat."; + showErrorModal.value = true; return; } @@ -140,7 +145,8 @@ const runAI = async () => { aiAnalysis.value = response.data; } catch (error) { console.error('AI Analysis Error:', error); - alert(error.response?.data?.error || "Une erreur est survenue lors de l'analyse."); + modalErrorMessage.value = error.response?.data?.error || "Une erreur est survenue lors de l'analyse."; + showErrorModal.value = true; } finally { isAnalyzing.value = false; } @@ -696,4 +702,28 @@ const runAI = async () => { + + + +
+
+
+ + + +
+

Attention

+
+ +

+ {{ modalErrorMessage }} +

+ +
+ + Fermer + +
+
+