feat(frontend): improve error handling with enhanced visual feedback
This commit is contained in:
parent
337bd3a900
commit
575fa7e60e
@ -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"));
|
||||||
|
@ -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>
|
||||||
|
Loading…
Reference in New Issue
Block a user