feat: add dynamic button state updates for hidden files config with modified vault count display and visual highlights to indicate unsaved changes
This commit is contained in:
@@ -3234,6 +3234,29 @@
|
||||
// Track which vaults have been modified
|
||||
let modifiedVaults = new Set();
|
||||
|
||||
function updateHiddenFilesButtonStates() {
|
||||
const saveBtn = document.getElementById("cfg-save-hidden-files");
|
||||
const reindexBtn = document.getElementById("cfg-reindex-hidden");
|
||||
|
||||
if (modifiedVaults.size > 0) {
|
||||
if (saveBtn) {
|
||||
saveBtn.textContent = `💾 Sauvegarder (${modifiedVaults.size} modifié${modifiedVaults.size > 1 ? 's' : ''})`;
|
||||
saveBtn.classList.add("config-btn-highlight");
|
||||
}
|
||||
if (reindexBtn) {
|
||||
reindexBtn.textContent = "🔄 Sauvegarder et réindexer";
|
||||
}
|
||||
} else {
|
||||
if (saveBtn) {
|
||||
saveBtn.textContent = "💾 Sauvegarder";
|
||||
saveBtn.classList.remove("config-btn-highlight");
|
||||
}
|
||||
if (reindexBtn) {
|
||||
reindexBtn.textContent = "🔄 Réindexer";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function loadHiddenFilesSettings() {
|
||||
const container = document.getElementById("hidden-files-vault-list");
|
||||
if (!container) return;
|
||||
@@ -3338,15 +3361,18 @@
|
||||
addBtn.addEventListener("click", () => {
|
||||
addWhitelistItem(vault.name);
|
||||
modifiedVaults.add(vault.name);
|
||||
updateHiddenFilesButtonStates();
|
||||
});
|
||||
input.addEventListener("keypress", (e) => {
|
||||
if (e.key === "Enter") {
|
||||
addWhitelistItem(vault.name);
|
||||
modifiedVaults.add(vault.name);
|
||||
updateHiddenFilesButtonStates();
|
||||
}
|
||||
});
|
||||
checkbox.addEventListener("change", () => {
|
||||
modifiedVaults.add(vault.name);
|
||||
updateHiddenFilesButtonStates();
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -3367,6 +3393,7 @@
|
||||
removeBtn.addEventListener("click", () => {
|
||||
item.remove();
|
||||
modifiedVaults.add(vaultName);
|
||||
updateHiddenFilesButtonStates();
|
||||
});
|
||||
|
||||
return item;
|
||||
@@ -3435,6 +3462,7 @@
|
||||
|
||||
await Promise.all(promises);
|
||||
modifiedVaults.clear();
|
||||
updateHiddenFilesButtonStates();
|
||||
showToast("✓ Paramètres sauvegardés", "success");
|
||||
} catch (err) {
|
||||
console.error("Failed to save hidden files settings:", err);
|
||||
@@ -3467,6 +3495,8 @@
|
||||
showToast("✓ Réindexation terminée", "success");
|
||||
}
|
||||
|
||||
modifiedVaults.clear();
|
||||
updateHiddenFilesButtonStates();
|
||||
loadDiagnostics();
|
||||
await Promise.all([loadVaults(), loadTags()]);
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user