feat: initialize frontend application structure and search functionality with autocomplete support
This commit is contained in:
parent
9e1b4f4105
commit
4e8c36cc61
@ -1865,6 +1865,18 @@
|
|||||||
syncVaultSelectors();
|
syncVaultSelectors();
|
||||||
await refreshSidebarForContext();
|
await refreshSidebarForContext();
|
||||||
await refreshTagsForContext();
|
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();
|
showWelcome();
|
||||||
if (options && options.focusVault && vaultName !== "all") {
|
if (options && options.focusVault && vaultName !== "all") {
|
||||||
await focusVaultInSidebar(vaultName);
|
await focusVaultInSidebar(vaultName);
|
||||||
@ -1874,10 +1886,14 @@
|
|||||||
function syncVaultSelectors() {
|
function syncVaultSelectors() {
|
||||||
const filter = document.getElementById("vault-filter");
|
const filter = document.getElementById("vault-filter");
|
||||||
const quickSelect = document.getElementById("vault-quick-select");
|
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");
|
const contextText = document.getElementById("vault-context-text");
|
||||||
|
|
||||||
if (filter) filter.value = selectedContextVault;
|
if (filter) filter.value = selectedContextVault;
|
||||||
if (quickSelect) quickSelect.value = selectedContextVault;
|
if (quickSelect) quickSelect.value = selectedContextVault;
|
||||||
|
if (recentFilter) recentFilter.value = selectedContextVault === "all" ? "" : selectedContextVault;
|
||||||
|
if (dashboardFilter) dashboardFilter.value = selectedContextVault;
|
||||||
|
|
||||||
// Update vault context indicator
|
// Update vault context indicator
|
||||||
if (contextText) {
|
if (contextText) {
|
||||||
@ -1994,6 +2010,12 @@
|
|||||||
populateCustomDropdown("vault-filter-dropdown", dropdownOptions, "all");
|
populateCustomDropdown("vault-filter-dropdown", dropdownOptions, "all");
|
||||||
populateCustomDropdown("vault-quick-select-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) => {
|
vaults.forEach((v) => {
|
||||||
// Sidebar tree entry
|
// Sidebar tree entry
|
||||||
const vaultItem = el("div", { class: "tree-item vault-item", "data-vault": v.name }, [icon("chevron-right", 14), getVaultIcon(v.name, 16), document.createTextNode(` ${v.name} `), smallBadge(v.file_count)]);
|
const vaultItem = el("div", { class: "tree-item vault-item", "data-vault": v.name }, [icon("chevron-right", 14), getVaultIcon(v.name, 16), document.createTextNode(` ${v.name} `), smallBadge(v.file_count)]);
|
||||||
@ -3090,13 +3112,14 @@
|
|||||||
select.appendChild(opt);
|
select.appendChild(opt);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
syncVaultSelectors();
|
||||||
},
|
},
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
const select = document.getElementById("dashboard-vault-filter");
|
const select = document.getElementById("dashboard-vault-filter");
|
||||||
if (select) {
|
if (select) {
|
||||||
select.addEventListener("change", () => {
|
select.addEventListener("change", async () => {
|
||||||
this.load(select.value);
|
await setSelectedVaultContext(select.value, { focusVault: select.value !== "all" });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3289,13 +3312,15 @@
|
|||||||
opt.textContent = v.name;
|
opt.textContent = v.name;
|
||||||
select.appendChild(opt);
|
select.appendChild(opt);
|
||||||
});
|
});
|
||||||
|
syncVaultSelectors();
|
||||||
}
|
}
|
||||||
|
|
||||||
function initRecentTab() {
|
function initRecentTab() {
|
||||||
const select = document.getElementById("recent-vault-filter");
|
const select = document.getElementById("recent-vault-filter");
|
||||||
if (select) {
|
if (select) {
|
||||||
select.addEventListener("change", () => {
|
select.addEventListener("change", async () => {
|
||||||
loadRecentFiles(select.value || null);
|
const val = select.value || "all";
|
||||||
|
await setSelectedVaultContext(val, { focusVault: val !== "all" });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// Periodic timestamp refresh (every 60s)
|
// Periodic timestamp refresh (every 60s)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user