feat: initialize frontend application structure and search functionality with autocomplete support

This commit is contained in:
Bruno Charest 2026-03-27 23:04:42 -04:00
parent 9e1b4f4105
commit 4e8c36cc61

View File

@ -1865,6 +1865,18 @@
syncVaultSelectors();
await refreshSidebarForContext();
await refreshTagsForContext();
// Synchroniser le dashboard et les fichiers récents
if (typeof DashboardRecentWidget !== "undefined" && DashboardRecentWidget.load) {
DashboardRecentWidget.load(vaultName);
}
if (typeof DashboardBookmarkWidget !== "undefined" && DashboardBookmarkWidget.load) {
DashboardBookmarkWidget.load(vaultName);
}
if (activeSidebarTab === "recent") {
loadRecentFiles(vaultName === "all" ? null : vaultName);
}
showWelcome();
if (options && options.focusVault && vaultName !== "all") {
await focusVaultInSidebar(vaultName);
@ -1874,10 +1886,14 @@
function syncVaultSelectors() {
const filter = document.getElementById("vault-filter");
const quickSelect = document.getElementById("vault-quick-select");
const recentFilter = document.getElementById("recent-vault-filter");
const dashboardFilter = document.getElementById("dashboard-vault-filter");
const contextText = document.getElementById("vault-context-text");
if (filter) filter.value = selectedContextVault;
if (quickSelect) quickSelect.value = selectedContextVault;
if (recentFilter) recentFilter.value = selectedContextVault === "all" ? "" : selectedContextVault;
if (dashboardFilter) dashboardFilter.value = selectedContextVault;
// Update vault context indicator
if (contextText) {
@ -1993,6 +2009,12 @@
// Populate custom dropdowns
populateCustomDropdown("vault-filter-dropdown", dropdownOptions, "all");
populateCustomDropdown("vault-quick-select-dropdown", dropdownOptions, "all");
// Populate standard selects
_populateRecentVaultFilter();
if (typeof DashboardRecentWidget !== "undefined" && DashboardRecentWidget.populateVaultFilter) {
DashboardRecentWidget.populateVaultFilter();
}
vaults.forEach((v) => {
// Sidebar tree entry
@ -3090,13 +3112,14 @@
select.appendChild(opt);
});
}
syncVaultSelectors();
},
init() {
const select = document.getElementById("dashboard-vault-filter");
if (select) {
select.addEventListener("change", () => {
this.load(select.value);
select.addEventListener("change", async () => {
await setSelectedVaultContext(select.value, { focusVault: select.value !== "all" });
});
}
@ -3289,13 +3312,15 @@
opt.textContent = v.name;
select.appendChild(opt);
});
syncVaultSelectors();
}
function initRecentTab() {
const select = document.getElementById("recent-vault-filter");
if (select) {
select.addEventListener("change", () => {
loadRecentFiles(select.value || null);
select.addEventListener("change", async () => {
const val = select.value || "all";
await setSelectedVaultContext(val, { focusVault: val !== "all" });
});
}
// Periodic timestamp refresh (every 60s)