feat: contextmenu Edit toegevoegd
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -72,6 +72,7 @@ class UiSmokeGoldenTest(unittest.TestCase):
|
|||||||
self.assertIn('id="context-menu-scope"', body)
|
self.assertIn('id="context-menu-scope"', body)
|
||||||
self.assertIn('id="context-menu-target"', body)
|
self.assertIn('id="context-menu-target"', body)
|
||||||
self.assertIn('id="context-menu-open-btn"', body)
|
self.assertIn('id="context-menu-open-btn"', body)
|
||||||
|
self.assertIn('id="context-menu-edit-btn"', body)
|
||||||
self.assertIn('id="context-menu-rename-btn"', body)
|
self.assertIn('id="context-menu-rename-btn"', body)
|
||||||
self.assertIn('id="context-menu-copy-btn"', body)
|
self.assertIn('id="context-menu-copy-btn"', body)
|
||||||
self.assertIn('id="context-menu-move-btn"', body)
|
self.assertIn('id="context-menu-move-btn"', body)
|
||||||
@@ -214,6 +215,7 @@ class UiSmokeGoldenTest(unittest.TestCase):
|
|||||||
self.assertIn('function closeContextMenu()', app_js)
|
self.assertIn('function closeContextMenu()', app_js)
|
||||||
self.assertIn('function applyContextMenuSelection()', app_js)
|
self.assertIn('function applyContextMenuSelection()', app_js)
|
||||||
self.assertIn('function startContextMenuOpen()', app_js)
|
self.assertIn('function startContextMenuOpen()', app_js)
|
||||||
|
self.assertIn('function startContextMenuEdit()', app_js)
|
||||||
self.assertIn('function startContextMenuRename()', app_js)
|
self.assertIn('function startContextMenuRename()', app_js)
|
||||||
self.assertIn('function startContextMenuCopy()', app_js)
|
self.assertIn('function startContextMenuCopy()', app_js)
|
||||||
self.assertIn('function startContextMenuMove()', app_js)
|
self.assertIn('function startContextMenuMove()', app_js)
|
||||||
@@ -227,6 +229,9 @@ class UiSmokeGoldenTest(unittest.TestCase):
|
|||||||
self.assertIn('closeContextMenu();', app_js)
|
self.assertIn('closeContextMenu();', app_js)
|
||||||
self.assertIn('elements.openButton.classList.toggle("hidden", isMulti);', 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.openButton.disabled = isMulti || items.length !== 1;', app_js)
|
||||||
|
self.assertIn('const editableSingle = items.length === 1 && isEditableSelection(items[0]);', app_js)
|
||||||
|
self.assertIn('elements.editButton.classList.toggle("hidden", isMulti || items.length !== 1 || items[0].kind !== "file");', app_js)
|
||||||
|
self.assertIn('elements.editButton.disabled = !editableSingle;', app_js)
|
||||||
self.assertIn('elements.renameButton.classList.toggle("hidden", isMulti);', 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.classList.remove("hidden");', app_js)
|
||||||
self.assertIn('elements.copyButton.disabled = items.length === 0;', app_js)
|
self.assertIn('elements.copyButton.disabled = items.length === 0;', app_js)
|
||||||
@@ -234,6 +239,7 @@ class UiSmokeGoldenTest(unittest.TestCase):
|
|||||||
self.assertIn('elements.propertiesButton.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('elements.propertiesButton.disabled = items.length === 0;', app_js)
|
||||||
self.assertIn('openCurrentDirectory();', app_js)
|
self.assertIn('openCurrentDirectory();', app_js)
|
||||||
|
self.assertIn('openEditor();', app_js)
|
||||||
self.assertIn('openRenamePopup();', app_js)
|
self.assertIn('openRenamePopup();', app_js)
|
||||||
self.assertIn('startCopySelected();', app_js)
|
self.assertIn('startCopySelected();', app_js)
|
||||||
self.assertIn('openF6Flow();', app_js)
|
self.assertIn('openF6Flow();', app_js)
|
||||||
|
|||||||
@@ -327,6 +327,7 @@ function contextMenuElements() {
|
|||||||
scope: document.getElementById("context-menu-scope"),
|
scope: document.getElementById("context-menu-scope"),
|
||||||
target: document.getElementById("context-menu-target"),
|
target: document.getElementById("context-menu-target"),
|
||||||
openButton: document.getElementById("context-menu-open-btn"),
|
openButton: document.getElementById("context-menu-open-btn"),
|
||||||
|
editButton: document.getElementById("context-menu-edit-btn"),
|
||||||
renameButton: document.getElementById("context-menu-rename-btn"),
|
renameButton: document.getElementById("context-menu-rename-btn"),
|
||||||
copyButton: document.getElementById("context-menu-copy-btn"),
|
copyButton: document.getElementById("context-menu-copy-btn"),
|
||||||
moveButton: document.getElementById("context-menu-move-btn"),
|
moveButton: document.getElementById("context-menu-move-btn"),
|
||||||
@@ -370,10 +371,13 @@ function openContextMenu(pane, entry, event) {
|
|||||||
contextMenuState.anchorPath = entry.path;
|
contextMenuState.anchorPath = entry.path;
|
||||||
|
|
||||||
const isMulti = items.length > 1;
|
const isMulti = items.length > 1;
|
||||||
|
const editableSingle = items.length === 1 && isEditableSelection(items[0]);
|
||||||
elements.scope.textContent = isMulti ? "Multi-selection" : "Single item";
|
elements.scope.textContent = isMulti ? "Multi-selection" : "Single item";
|
||||||
elements.target.textContent = isMulti ? `${items.length} selected items` : entry.name;
|
elements.target.textContent = isMulti ? `${items.length} selected items` : entry.name;
|
||||||
elements.openButton.classList.toggle("hidden", isMulti);
|
elements.openButton.classList.toggle("hidden", isMulti);
|
||||||
elements.openButton.disabled = isMulti || items.length !== 1;
|
elements.openButton.disabled = isMulti || items.length !== 1;
|
||||||
|
elements.editButton.classList.toggle("hidden", isMulti || items.length !== 1 || items[0].kind !== "file");
|
||||||
|
elements.editButton.disabled = !editableSingle;
|
||||||
elements.renameButton.classList.toggle("hidden", isMulti);
|
elements.renameButton.classList.toggle("hidden", isMulti);
|
||||||
elements.copyButton.classList.remove("hidden");
|
elements.copyButton.classList.remove("hidden");
|
||||||
elements.copyButton.disabled = items.length === 0;
|
elements.copyButton.disabled = items.length === 0;
|
||||||
@@ -463,6 +467,18 @@ function startContextMenuOpen() {
|
|||||||
openCurrentDirectory();
|
openCurrentDirectory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function startContextMenuEdit() {
|
||||||
|
if (contextMenuElements().editButton?.disabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!applyContextMenuSelection()) {
|
||||||
|
closeContextMenu();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
closeContextMenu();
|
||||||
|
openEditor();
|
||||||
|
}
|
||||||
|
|
||||||
function startContextMenuProperties() {
|
function startContextMenuProperties() {
|
||||||
if (contextMenuElements().propertiesButton?.disabled) {
|
if (contextMenuElements().propertiesButton?.disabled) {
|
||||||
return;
|
return;
|
||||||
@@ -3806,6 +3822,9 @@ function setupEvents() {
|
|||||||
if (contextMenu.openButton) {
|
if (contextMenu.openButton) {
|
||||||
contextMenu.openButton.onclick = startContextMenuOpen;
|
contextMenu.openButton.onclick = startContextMenuOpen;
|
||||||
}
|
}
|
||||||
|
if (contextMenu.editButton) {
|
||||||
|
contextMenu.editButton.onclick = startContextMenuEdit;
|
||||||
|
}
|
||||||
if (contextMenu.copyButton) {
|
if (contextMenu.copyButton) {
|
||||||
contextMenu.copyButton.onclick = startContextMenuCopy;
|
contextMenu.copyButton.onclick = startContextMenuCopy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,6 +123,7 @@
|
|||||||
<div id="context-menu-target" class="context-menu-target"></div>
|
<div id="context-menu-target" class="context-menu-target"></div>
|
||||||
<div class="context-menu-separator"></div>
|
<div class="context-menu-separator"></div>
|
||||||
<button id="context-menu-open-btn" type="button" role="menuitem">Open</button>
|
<button id="context-menu-open-btn" type="button" role="menuitem">Open</button>
|
||||||
|
<button id="context-menu-edit-btn" type="button" role="menuitem">Edit</button>
|
||||||
<button id="context-menu-rename-btn" type="button" role="menuitem">Rename</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-copy-btn" type="button" role="menuitem">Copy</button>
|
||||||
<button id="context-menu-move-btn" type="button" role="menuitem">Move</button>
|
<button id="context-menu-move-btn" type="button" role="menuitem">Move</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user