feat: menu contextuel repertoire → Sauvegarder recherche + icone dossier
- ContextMenuManager: option Ajouter aux recherches sauvegardees pour repertoires - _saveDirectorySearch: POST /api/saved-searches avec include_paths=repertoire/** - Bascule automatique vers longlet Sauvegardes dans le sidebar - loadSavedSearches: icone folder-search + classe saved-search-dir pour recherches dossier - Recherches dossier affichent le chemin au lieu d'une query vide
This commit is contained in:
@@ -1677,6 +1677,8 @@ export const ContextMenuManager = {
|
||||
this._addItem('folder-plus', 'Nouveau sous-dossier', () => this._createDirectory(), isReadonly);
|
||||
this._addItem('file-plus', 'Nouveau fichier ici', () => this._createFile(), isReadonly);
|
||||
this._addSeparator();
|
||||
this._addItem('bookmark-plus', 'Ajouter aux recherches sauvegardees', () => this._saveDirectorySearch(), false);
|
||||
this._addSeparator();
|
||||
this._addItem('edit', 'Renommer', () => this._renameItem(), isReadonly);
|
||||
this._addItem('trash-2', 'Supprimer', () => this._deleteDirectory(), isReadonly);
|
||||
} else if (type === 'file') {
|
||||
@@ -1813,6 +1815,33 @@ export const ContextMenuManager = {
|
||||
} catch (err) { showToast("Erreur: " + err.message, "error"); }
|
||||
},
|
||||
|
||||
async _saveDirectorySearch() {
|
||||
try {
|
||||
var vault = this._targetVault || "all";
|
||||
var dirPath = this._targetPath;
|
||||
var dirName = dirPath.split("/").pop() || dirPath;
|
||||
await api("/api/saved-searches", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
query: "",
|
||||
vault: vault,
|
||||
case_sensitive: false,
|
||||
whole_word: false,
|
||||
regex: false,
|
||||
include_paths: dirPath + "/**",
|
||||
exclude_paths: "",
|
||||
}),
|
||||
});
|
||||
showToast("Repertoire sauvegarde dans les recherches", "success");
|
||||
// Switch to saved searches tab
|
||||
var savedTab = document.getElementById("sidebar-tab-saved");
|
||||
if (savedTab) savedTab.click();
|
||||
// Reload saved searches
|
||||
import('./viewer.js').then(function(m) { m.loadSavedSearches(); });
|
||||
} catch (err) { showToast("Erreur: " + err.message, "error"); }
|
||||
},
|
||||
|
||||
_openBackupViewer() {
|
||||
// Dynamically import the backup viewer module to avoid circular deps
|
||||
import('./backups.js').then(mod => {
|
||||
|
||||
Reference in New Issue
Block a user