feat: contextmenu Open aangepast
This commit is contained in:
Binary file not shown.
@@ -213,6 +213,7 @@ class UiSmokeGoldenTest(unittest.TestCase):
|
|||||||
self.assertIn('function contextMenuElements()', app_js)
|
self.assertIn('function contextMenuElements()', app_js)
|
||||||
self.assertIn('function openContextMenu(pane, entry, event)', app_js)
|
self.assertIn('function openContextMenu(pane, entry, event)', app_js)
|
||||||
self.assertIn('function closeContextMenu()', app_js)
|
self.assertIn('function closeContextMenu()', app_js)
|
||||||
|
self.assertIn('function isOpenableSelection(item)', 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 startContextMenuEdit()', app_js)
|
||||||
@@ -228,7 +229,10 @@ class UiSmokeGoldenTest(unittest.TestCase):
|
|||||||
self.assertIn('if (!row) {', app_js)
|
self.assertIn('if (!row) {', app_js)
|
||||||
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('const openableSingle = items.length === 1 && isOpenableSelection(items[0]);', app_js)
|
||||||
|
self.assertIn('elements.openButton.disabled = !openableSingle;', app_js)
|
||||||
|
self.assertIn('if (item.kind === "directory") {', app_js)
|
||||||
|
self.assertIn('return isImageSelection(item) || isVideoSelection(item);', app_js)
|
||||||
self.assertIn('const editableSingle = items.length === 1 && isEditableSelection(items[0]);', 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.classList.toggle("hidden", isMulti || items.length !== 1 || items[0].kind !== "file");', app_js)
|
||||||
self.assertIn('elements.editButton.disabled = !editableSingle;', app_js)
|
self.assertIn('elements.editButton.disabled = !editableSingle;', app_js)
|
||||||
|
|||||||
+12
-1
@@ -336,6 +336,16 @@ function contextMenuElements() {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isOpenableSelection(item) {
|
||||||
|
if (!item) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (item.kind === "directory") {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return isImageSelection(item) || isVideoSelection(item);
|
||||||
|
}
|
||||||
|
|
||||||
function isContextMenuOpen() {
|
function isContextMenuOpen() {
|
||||||
return contextMenuState.open && !contextMenuElements().menu.classList.contains("hidden");
|
return contextMenuState.open && !contextMenuElements().menu.classList.contains("hidden");
|
||||||
}
|
}
|
||||||
@@ -371,11 +381,12 @@ function openContextMenu(pane, entry, event) {
|
|||||||
contextMenuState.anchorPath = entry.path;
|
contextMenuState.anchorPath = entry.path;
|
||||||
|
|
||||||
const isMulti = items.length > 1;
|
const isMulti = items.length > 1;
|
||||||
|
const openableSingle = items.length === 1 && isOpenableSelection(items[0]);
|
||||||
const editableSingle = items.length === 1 && isEditableSelection(items[0]);
|
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 = !openableSingle;
|
||||||
elements.editButton.classList.toggle("hidden", isMulti || items.length !== 1 || items[0].kind !== "file");
|
elements.editButton.classList.toggle("hidden", isMulti || items.length !== 1 || items[0].kind !== "file");
|
||||||
elements.editButton.disabled = !editableSingle;
|
elements.editButton.disabled = !editableSingle;
|
||||||
elements.renameButton.classList.toggle("hidden", isMulti);
|
elements.renameButton.classList.toggle("hidden", isMulti);
|
||||||
|
|||||||
Reference in New Issue
Block a user