feat(frontend): improve error handling with enhanced visual feedback

This commit is contained in:
Mariano Riefolo 2024-09-07 14:26:34 +02:00
parent 337bd3a900
commit 575fa7e60e
2 changed files with 18 additions and 8 deletions

View File

@ -3,6 +3,10 @@ function load_links() {
.then((response) => response.json()) .then((response) => response.json())
.then((data) => { .then((data) => {
let i = 0; let i = 0;
if (data.links === undefined || data.links.length === 0) {
show_error(null, "Nessun orario trovato");
return;
}
data.links.forEach((el) => { data.links.forEach((el) => {
const select = document.getElementById("links"); const select = document.getElementById("links");
const option = document.createElement("option"); const option = document.createElement("option");
@ -14,8 +18,7 @@ function load_links() {
document.getElementById("links-label").removeAttribute("aria-busy"); document.getElementById("links-label").removeAttribute("aria-busy");
}) })
.catch((error) => { .catch((error) => {
alert("Errore nel caricamento dei dati, riprova più tardi."); show_error(error);
console.error("Error:", error);
}); });
} }
@ -36,8 +39,7 @@ function load_teachers(id) {
document.getElementById("teacher-label").removeAttribute("aria-busy"); document.getElementById("teacher-label").removeAttribute("aria-busy");
}) })
.catch((error) => { .catch((error) => {
alert("Errore nel caricamento dei dati, riprova più tardi."); show_error(error);
console.error("Error:", error);
}); });
} }
@ -62,8 +64,7 @@ function load_classes(id) {
document.getElementById("class-label").removeAttribute("aria-busy"); document.getElementById("class-label").removeAttribute("aria-busy");
}) })
.catch((error) => { .catch((error) => {
alert("Errore nel caricamento dei dati, riprova più tardi."); show_error(error);
console.error("Error:", error);
}); });
} }
@ -138,8 +139,7 @@ function make_table(url) {
document.getElementById("table").removeAttribute("aria-busy"); document.getElementById("table").removeAttribute("aria-busy");
}) })
.catch((error) => { .catch((error) => {
alert("Errore nel caricamento dei dati, riprova più tardi."); show_error(error);
console.error("Error:", error);
}); });
} }
@ -236,6 +236,13 @@ function delete_cookies() {
Cookies.remove("class"); Cookies.remove("class");
} }
function show_error(e, message) {
let default_error = "Errore nel caricamento dei dati, riprova più tardi";
console.error(e ?? default_error);
document.getElementById("error").textContent = message ?? default_error;
document.getElementById("error-dialog").setAttribute("open", "");
}
if (Cookies.get("id") && Cookies.get("type")) { if (Cookies.get("id") && Cookies.get("type")) {
if (Cookies.get("type") === "teacher" && Cookies.get("teacher")) { if (Cookies.get("type") === "teacher" && Cookies.get("teacher")) {
make_teacher_table(Cookies.get("id"), Cookies.get("teacher")); make_teacher_table(Cookies.get("id"), Cookies.get("teacher"));

View File

@ -104,6 +104,9 @@
<input type="submit" onclick="delete_cookies()" value="Reimposta" /> <input type="submit" onclick="delete_cookies()" value="Reimposta" />
</form> </form>
</div> </div>
<dialog id="error-dialog">
<p id="error">Errore: non è stato possibile caricare l'orario.</p>
</dialog>
</main> </main>
<footer class="container"> <footer class="container">
<p> <p>