feat: initialize ObsiGate frontend with SPA structure, search history, and autocomplete functionality

This commit is contained in:
Bruno Charest 2026-03-27 23:09:47 -04:00
parent 4e8c36cc61
commit 6fc1c59664
2 changed files with 26 additions and 1 deletions

View File

@ -1895,12 +1895,37 @@
if (recentFilter) recentFilter.value = selectedContextVault === "all" ? "" : selectedContextVault;
if (dashboardFilter) dashboardFilter.value = selectedContextVault;
// Mise à jour visuelle des dropdowns personnalisés
updateCustomDropdownVisual("vault-filter-dropdown", selectedContextVault);
updateCustomDropdownVisual("vault-quick-select-dropdown", selectedContextVault);
// Update vault context indicator
if (contextText) {
contextText.textContent = selectedContextVault === "all" ? "All" : selectedContextVault;
}
}
/**
* Updates the visual state of a custom dropdown based on its current value.
*/
function updateCustomDropdownVisual(dropdownId, value) {
const dropdown = document.getElementById(dropdownId);
if (!dropdown) return;
const selectedText = dropdown.querySelector(".custom-dropdown-selected");
const options = dropdown.querySelectorAll(".custom-dropdown-option");
options.forEach((opt) => {
const optValue = opt.getAttribute("data-value");
if (optValue === value) {
opt.classList.add("selected");
if (selectedText) selectedText.textContent = opt.textContent;
} else {
opt.classList.remove("selected");
}
});
}
function scrollTreeItemIntoView(element, alignToTop) {
if (!element) return;
const scrollContainer = document.getElementById("sidebar-panel-vaults");

View File

@ -375,7 +375,7 @@
<h2>Derniers fichiers ouverts</h2>
<span id="dashboard-count" class="dashboard-badge"></span>
</div>
<div class="dashboard-actions">
<div class="dashboard-actions hidden">
<select id="dashboard-vault-filter" class="dashboard-filter" aria-label="Filtrer par vault">
<option value="all">Tous les vaults</option>
</select>