feat: filtre sauvegardes (Tous/Recherches/Repertoires) extensible
- Barre de filtres avec 3 pills: Tous, Recherches, Repertoires - Chaque saved-search-item a data-type=search|directory - _applySavedFilter() masque/affiche selon le filtre actif - _initSavedFilter() initialise les listeners (run once) - Extensible: ajouter un pill + data-type suffit - Gere l'etat empty quand aucun resultat pour le filtre
This commit is contained in:
@@ -347,16 +347,19 @@ async function loadSavedSearches() {
|
||||
if (s.exclude_paths) pathFilters.push(`<span class="saved-search-path" title="Exclure: ${escapeHtml(s.exclude_paths)}">\u{1F4E4} ${escapeHtml(s.exclude_paths)}</span>`);
|
||||
const vaultStr = s.vault && s.vault !== "all" ? `<span class="saved-search-vault">\u{1F4C1} ${escapeHtml(s.vault)}</span>` : "";
|
||||
return `
|
||||
<div class="saved-search-item${isDirSearch ? ' saved-search-dir' : ''}">
|
||||
<div class="saved-search-item${isDirSearch ? ' saved-search-dir' : ''}" data-type="${isDirSearch ? 'directory' : 'search'}">
|
||||
<div class="saved-search-query">${displayQuery}</div>
|
||||
<div class="saved-search-meta">
|
||||
<span class="saved-search-badges">${badges.join("")} ${vaultStr}</span>
|
||||
${typeIcon}
|
||||
</div>
|
||||
${pathFilters.length ? '<div class="saved-search-filters">' + pathFilters.join(" ") + '</div>' : ""}
|
||||
<button class="saved-search-delete" data-id="${s.id}" title="Supprimer"><E2><9C><95></button>
|
||||
<button class="saved-search-delete" data-id="${s.id}" title="Supprimer">✕</button>
|
||||
</div>
|
||||
`}).join("");
|
||||
// Apply saved filter + init filter bar
|
||||
if (typeof _applySavedFilter === 'function') _applySavedFilter();
|
||||
if (typeof _initSavedFilter === 'function') _initSavedFilter();
|
||||
list.querySelectorAll(".saved-search-item").forEach(item => {
|
||||
item.addEventListener("click", (e) => {
|
||||
if (e.target.classList.contains("saved-search-delete")) return;
|
||||
|
||||
Reference in New Issue
Block a user