From 474953b204495f7433ac477325c03ac778e33e70 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr>
Date: Thu, 13 Apr 2023 09:21:03 +0200
Subject: [PATCH] =?UTF-8?q?toasts=20affich=C3=A9s=20+=20longtemps,=20am?=
 =?UTF-8?q?=C3=A9liorations=20cosm=C3=A9tiques=20de=20l'aff=20des=20toasts?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 js/Client/flashMessenger.js |  6 +++---
 js/Client/unicaenVue.js     | 22 +++++++++++++++++++---
 2 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/js/Client/flashMessenger.js b/js/Client/flashMessenger.js
index e06b920..049dc59 100644
--- a/js/Client/flashMessenger.js
+++ b/js/Client/flashMessenger.js
@@ -39,8 +39,8 @@ function toast(message, severity) {
     toast.setAttribute('aria-live', 'assertive');
     toast.setAttribute('aria-atomic', 'true');
 
-    if (severity === 'error'){
-        toast.setAttribute('style', 'width:100%');
+    if (severity === 'error' && message.length > 500){
+        toast.setAttribute('style', 'width:700px');
     }
 
     const toastContent =
@@ -57,7 +57,7 @@ function toast(message, severity) {
     if (severity !== 'error') {
         setTimeout(() => {
             toast.classList.remove('show');
-        }, 3000);
+        }, 5000);
     }
 }
 
diff --git a/js/Client/unicaenVue.js b/js/Client/unicaenVue.js
index 24b8f98..4710903 100644
--- a/js/Client/unicaenVue.js
+++ b/js/Client/unicaenVue.js
@@ -83,11 +83,27 @@ unicaenVue.axios.interceptors.response.use(response => {
 
     return response;
 }, (error) => {
-    var text = $("<div>").html(error.response.data);
+    let message = error.response.data;
 
-    text.find('i.fas').hide();
+    if (error.response.status == 403){
+        message = '<h4>403 - Accès interdit</h4><br />Vous n\'êtes pas autorisé(e) à faire cette action.';
+    }else if (error.response.status == 500) {
+        const text = document.createElement("div");
+        text.innerHTML = error.response.data;
 
-    flashMessenger.toast(text.find('.alert').html(), 'error');
+        // on masque l'icône /!\ qui fait doublon si on en trouve
+        const fasIcons = text.querySelectorAll('i.fas');
+        fasIcons.forEach(icon => icon.style.display = "none");
+
+        message = text.querySelector('.alert').innerHTML;
+        if (message === undefined){
+            message = error.response.data;
+        }
+    }else{
+        message = error.response.data;
+    }
+
+    flashMessenger.toast(message, 'error');
 });
 
 unicaenVue.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
-- 
GitLab