05/18 Enhanced codes and functionalities 3
This commit is contained in:
+33
-4
@@ -130,9 +130,11 @@ const Vault = (() => {
|
||||
res = await fetch(path, merged);
|
||||
}
|
||||
|
||||
if (!res.ok && res.status !== 404) {
|
||||
if (!res.ok) {
|
||||
const err = await res.json().catch(() => ({}));
|
||||
throw new Error(err.error || `HTTP ${res.status}`);
|
||||
const e = new Error(err.error || `HTTP ${res.status}`);
|
||||
e.status = res.status;
|
||||
throw e;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@@ -974,7 +976,35 @@ const Vault = (() => {
|
||||
|
||||
let _importViewInitialised = false;
|
||||
|
||||
function _resetImportView() {
|
||||
_importRows = [];
|
||||
const fileInput = document.getElementById("import-file-input");
|
||||
const fileNameEl = document.getElementById("import-file-name");
|
||||
const previewEl = document.getElementById("import-preview");
|
||||
const confirmBtn = document.getElementById("btn-import-confirm");
|
||||
const resultEl = document.getElementById("import-result");
|
||||
if (fileInput) fileInput.value = "";
|
||||
if (fileNameEl) fileNameEl.textContent = "No file chosen";
|
||||
if (previewEl) {
|
||||
previewEl.innerHTML = "";
|
||||
previewEl.classList.add("hidden");
|
||||
}
|
||||
if (confirmBtn) {
|
||||
confirmBtn.disabled = true;
|
||||
confirmBtn.textContent = "Import items";
|
||||
delete confirmBtn.dataset.mode;
|
||||
}
|
||||
if (resultEl) {
|
||||
resultEl.innerHTML = "";
|
||||
resultEl.classList.add("hidden");
|
||||
}
|
||||
}
|
||||
|
||||
function loadImportExportView() {
|
||||
// Reset import panel state every time the view is entered so a previous
|
||||
// import result or file preview is never shown stale on re-entry.
|
||||
_resetImportView();
|
||||
|
||||
if (_importViewInitialised) return;
|
||||
_importViewInitialised = true;
|
||||
|
||||
@@ -1238,7 +1268,6 @@ const Vault = (() => {
|
||||
});
|
||||
if (!res) return;
|
||||
const data = await res.json();
|
||||
if (!res.ok) throw new Error(data.error || "Import failed.");
|
||||
|
||||
resultEl.innerHTML = `✅ Imported <strong>${data.imported}</strong> item(s)${data.skipped ? `, skipped ${data.skipped} malformed row(s)` : ""}.`;
|
||||
resultEl.className = "import-result import-result-ok";
|
||||
@@ -3987,4 +4016,4 @@ const Vault = (() => {
|
||||
}
|
||||
})();
|
||||
|
||||
document.addEventListener("DOMContentLoaded", Vault.init);
|
||||
document.addEventListener("DOMContentLoaded", Vault.init);
|
||||
Reference in New Issue
Block a user