feat: contextmenu Open toegevoegd

This commit is contained in:
kodi
2026-03-14 11:23:52 +01:00
parent 73c539ba4a
commit 3dfbc64913
4 changed files with 24 additions and 0 deletions
@@ -71,6 +71,7 @@ class UiSmokeGoldenTest(unittest.TestCase):
self.assertIn('id="context-menu"', body)
self.assertIn('id="context-menu-scope"', body)
self.assertIn('id="context-menu-target"', body)
self.assertIn('id="context-menu-open-btn"', body)
self.assertIn('id="context-menu-rename-btn"', body)
self.assertIn('id="context-menu-copy-btn"', body)
self.assertIn('id="context-menu-move-btn"', body)
@@ -212,6 +213,7 @@ class UiSmokeGoldenTest(unittest.TestCase):
self.assertIn('function openContextMenu(pane, entry, event)', app_js)
self.assertIn('function closeContextMenu()', app_js)
self.assertIn('function applyContextMenuSelection()', app_js)
self.assertIn('function startContextMenuOpen()', app_js)
self.assertIn('function startContextMenuRename()', app_js)
self.assertIn('function startContextMenuCopy()', app_js)
self.assertIn('function startContextMenuMove()', app_js)
@@ -223,12 +225,15 @@ class UiSmokeGoldenTest(unittest.TestCase):
self.assertIn('event.target.closest("li[data-row-index]")', app_js)
self.assertIn('if (!row) {', app_js)
self.assertIn('closeContextMenu();', app_js)
self.assertIn('elements.openButton.classList.toggle("hidden", isMulti);', app_js)
self.assertIn('elements.openButton.disabled = isMulti || items.length !== 1;', app_js)
self.assertIn('elements.renameButton.classList.toggle("hidden", isMulti);', app_js)
self.assertIn('elements.copyButton.classList.remove("hidden");', app_js)
self.assertIn('elements.copyButton.disabled = items.length === 0;', app_js)
self.assertIn('elements.moveButton.classList.remove("hidden");', app_js)
self.assertIn('elements.propertiesButton.classList.remove("hidden");', app_js)
self.assertIn('elements.propertiesButton.disabled = items.length === 0;', app_js)
self.assertIn('openCurrentDirectory();', app_js)
self.assertIn('openRenamePopup();', app_js)
self.assertIn('startCopySelected();', app_js)
self.assertIn('openF6Flow();', app_js)
+18
View File
@@ -326,6 +326,7 @@ function contextMenuElements() {
menu: document.getElementById("context-menu"),
scope: document.getElementById("context-menu-scope"),
target: document.getElementById("context-menu-target"),
openButton: document.getElementById("context-menu-open-btn"),
renameButton: document.getElementById("context-menu-rename-btn"),
copyButton: document.getElementById("context-menu-copy-btn"),
moveButton: document.getElementById("context-menu-move-btn"),
@@ -371,6 +372,8 @@ function openContextMenu(pane, entry, event) {
const isMulti = items.length > 1;
elements.scope.textContent = isMulti ? "Multi-selection" : "Single item";
elements.target.textContent = isMulti ? `${items.length} selected items` : entry.name;
elements.openButton.classList.toggle("hidden", isMulti);
elements.openButton.disabled = isMulti || items.length !== 1;
elements.renameButton.classList.toggle("hidden", isMulti);
elements.copyButton.classList.remove("hidden");
elements.copyButton.disabled = items.length === 0;
@@ -448,6 +451,18 @@ function startContextMenuCopy() {
startCopySelected();
}
function startContextMenuOpen() {
if (contextMenuElements().openButton?.disabled) {
return;
}
if (!applyContextMenuSelection()) {
closeContextMenu();
return;
}
closeContextMenu();
openCurrentDirectory();
}
function startContextMenuProperties() {
if (contextMenuElements().propertiesButton?.disabled) {
return;
@@ -3788,6 +3803,9 @@ function setupEvents() {
if (contextMenu.renameButton) {
contextMenu.renameButton.onclick = startContextMenuRename;
}
if (contextMenu.openButton) {
contextMenu.openButton.onclick = startContextMenuOpen;
}
if (contextMenu.copyButton) {
contextMenu.copyButton.onclick = startContextMenuCopy;
}
+1
View File
@@ -122,6 +122,7 @@
<div id="context-menu-scope" class="context-menu-scope"></div>
<div id="context-menu-target" class="context-menu-target"></div>
<div class="context-menu-separator"></div>
<button id="context-menu-open-btn" type="button" role="menuitem">Open</button>
<button id="context-menu-rename-btn" type="button" role="menuitem">Rename</button>
<button id="context-menu-copy-btn" type="button" role="menuitem">Copy</button>
<button id="context-menu-move-btn" type="button" role="menuitem">Move</button>