feat: add context menu support for vault items with create file/directory operations

This commit is contained in:
Bruno Charest 2026-03-30 15:44:16 -04:00
parent eb2d21dbe8
commit 32c1bad1a1

View File

@ -1957,6 +1957,13 @@
vaultsToShow.forEach((v) => { vaultsToShow.forEach((v) => {
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)]);
vaultItem.addEventListener("click", () => toggleVault(vaultItem, v.name)); vaultItem.addEventListener("click", () => toggleVault(vaultItem, v.name));
vaultItem.addEventListener("contextmenu", (e) => {
e.preventDefault();
const isReadonly = false;
ContextMenuManager.show(e.clientX, e.clientY, v.name, '', 'vault', isReadonly);
});
container.appendChild(vaultItem); container.appendChild(vaultItem);
const childContainer = el("div", { class: "tree-children collapsed", id: `vault-children-${v.name}` }); const childContainer = el("div", { class: "tree-children collapsed", id: `vault-children-${v.name}` });
@ -2045,6 +2052,13 @@
// 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)]);
vaultItem.addEventListener("click", () => toggleVault(vaultItem, v.name)); vaultItem.addEventListener("click", () => toggleVault(vaultItem, v.name));
vaultItem.addEventListener("contextmenu", (e) => {
e.preventDefault();
const isReadonly = false;
ContextMenuManager.show(e.clientX, e.clientY, v.name, '', 'vault', isReadonly);
});
container.appendChild(vaultItem); container.appendChild(vaultItem);
const childContainer = el("div", { class: "tree-children collapsed", id: `vault-children-${v.name}` }); const childContainer = el("div", { class: "tree-children collapsed", id: `vault-children-${v.name}` });
@ -5537,7 +5551,10 @@
this._menu.innerHTML = ''; this._menu.innerHTML = '';
if (type === 'directory') { if (type === 'vault') {
this._addItem('folder-plus', 'Nouveau dossier', () => this._createDirectory(), isReadonly);
this._addItem('file-plus', 'Nouveau fichier', () => this._createFile(), isReadonly);
} else if (type === 'directory') {
this._addItem('folder-plus', 'Nouveau sous-dossier', () => this._createDirectory(), isReadonly); this._addItem('folder-plus', 'Nouveau sous-dossier', () => this._createDirectory(), isReadonly);
this._addItem('file-plus', 'Nouveau fichier ici', () => this._createFile(), isReadonly); this._addItem('file-plus', 'Nouveau fichier ici', () => this._createFile(), isReadonly);
this._addSeparator(); this._addSeparator();