add(ui): adding loading circle
This commit is contained in:
+14
-1
@@ -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 ----
|
||||
|
||||
Reference in New Issue
Block a user