add(ui): adding loading circle

This commit is contained in:
Steppenstreuner
2026-08-28 16:01:35 +02:00
parent 90a50e365f
commit 077b75bbb4
3 changed files with 26 additions and 1 deletions
+14 -1
View File
@@ -257,7 +257,9 @@ let scanItems = [];
let missingReqs = [];
$("#scan-btn").addEventListener("click", async () => {
$("#scan-info").textContent = "Scanne…";
const scanBtn = $("#scan-btn");
scanBtn.disabled = true;
$("#scan-info").innerHTML = '<span class="spinner"></span> Scanne…';
try {
const split = $("#split-dirs").checked;
const [scan, reqs] = await Promise.all([
@@ -277,6 +279,8 @@ $("#scan-btn").addEventListener("click", async () => {
} catch (err) {
$("#scan-info").textContent = "";
toast(err.message, true);
} finally {
scanBtn.disabled = false;
}
});
@@ -440,6 +444,9 @@ $("#import-btn").addEventListener("click", async () => {
request_id: item.request_id,
}));
if (!items.length) { toast("Nichts ausgewählt", true); return; }
const btn = $("#import-btn");
btn.disabled = true;
btn.innerHTML = `<span class="spinner"></span> Importiere ${items.length} Einträge…`;
try {
const res = await api("/api/import", { method: "POST", body: JSON.stringify({ items }) });
$("#import-results").innerHTML = res.results
@@ -449,8 +456,14 @@ $("#import-btn").addEventListener("click", async () => {
: `<p class="error">✗ ${esc(r.path)}: ${esc(r.error)}</p>`
)
.join("");
const failed = res.results.filter((r) => !r.ok).length;
toast(failed ? `Import fertig, ${failed} Fehler` : "Import fertig", failed > 0);
$("#scan-btn").click();
} catch (err) { toast(err.message, true); }
finally {
btn.disabled = false;
btn.textContent = "Ausgewählte importieren";
}
});
// ---- init ----