* [RFC manager 0/3] add bulk actions cmdmenu with multi select in resource tree
@ 2026-10-27 14:30 Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 1/3] ui: bulk action window: allow restricting the guest list by VMIDs Nicolas Frey
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Nicolas Frey @ 2026-10-27 14:30 UTC (permalink / raw)
To: pve-devel
sending this as an RFC as I'm unsure if this is wanted, especially
since there is already a CmdMenu for the TagView.
explicitly disallows multi-select on any other resouces that is not
a VM/CT (guest). can be useful for managing unrelated guests on the
fly, without creating a common tag between them.
pve-manager:
Nicolas Frey (3):
ui: bulk action window: allow restricting the guest list by VMIDs
ui: bulk actions: add cmdmenu with guest selection
ui: resource tree: allow selecting multiple guests for bulk actions
www/manager6/Utils.js | 17 ++++++++++++++++-
www/manager6/Workspace.js | 6 +++++-
www/manager6/dc/CmdMenu.js | 23 +++++++++++++++++++++++
www/manager6/tree/ResourceTree.js | 10 +++++++++-
www/manager6/window/BulkAction.js | 15 +++++++++++++--
5 files changed, 66 insertions(+), 5 deletions(-)
Summary over all repositories:
5 files changed, 66 insertions(+), 5 deletions(-)
--
Generated by murpp 0.12.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH pve-manager 1/3] ui: bulk action window: allow restricting the guest list by VMIDs
2026-10-27 14:30 [RFC manager 0/3] add bulk actions cmdmenu with multi select in resource tree Nicolas Frey
@ 2026-10-27 14:30 ` Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 2/3] ui: bulk actions: add cmdmenu with guest selection Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 3/3] ui: resource tree: allow selecting multiple guests for bulk actions Nicolas Frey
2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Frey @ 2026-10-27 14:30 UTC (permalink / raw)
To: pve-devel
in preparation for making guests selectable in the resource tree
Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
---
www/manager6/window/BulkAction.js | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/www/manager6/window/BulkAction.js b/www/manager6/window/BulkAction.js
index 2e3066a3..c1fc3474 100644
--- a/www/manager6/window/BulkAction.js
+++ b/www/manager6/window/BulkAction.js
@@ -17,6 +17,9 @@ Ext.define('PVE.window.BulkAction', {
// necessary for the cluster-wide api call
vmsAsArray: false,
+ // if set, only the guests with these VMIDs are offered for selection
+ vmids: undefined,
+
submit: function (params) {
let me = this;
@@ -310,8 +313,16 @@ Ext.define('PVE.window.BulkAction', {
!includeTags.length || tags.some((tag) => includeTags.indexOf(tag) !== -1);
let excludeFilter =
!excludeTags.length || tags.every((tag) => excludeTags.indexOf(tag) === -1);
-
- return name && arrayFilters && singleFilters && includeFilter && excludeFilter;
+ let vmidFilter = !me.vmids || me.vmids.includes(value.data.vmid);
+
+ return (
+ name &&
+ arrayFilters &&
+ singleFilters &&
+ includeFilter &&
+ excludeFilter &&
+ vmidFilter
+ );
};
let vmselector = me.down('#vms');
vmselector.getStore().setFilters({
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH pve-manager 2/3] ui: bulk actions: add cmdmenu with guest selection
2026-10-27 14:30 [RFC manager 0/3] add bulk actions cmdmenu with multi select in resource tree Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 1/3] ui: bulk action window: allow restricting the guest list by VMIDs Nicolas Frey
@ 2026-10-27 14:30 ` Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 3/3] ui: resource tree: allow selecting multiple guests for bulk actions Nicolas Frey
2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Frey @ 2026-10-27 14:30 UTC (permalink / raw)
To: pve-devel
as the `TagCmdMenu` did before, but with an option to pass in a list of
VMIDs.
Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
---
| 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
--git a/www/manager6/dc/CmdMenu.js b/www/manager6/dc/CmdMenu.js
index 87671adb..b6bc81f2 100644
--- a/www/manager6/dc/CmdMenu.js
+++ b/www/manager6/dc/CmdMenu.js
@@ -127,3 +127,26 @@ Ext.define('PVE.dc.TagCmdMenu', {
me.callParent();
},
});
+
+Ext.define('PVE.dc.GuestSelectionCmdMenu', {
+ extend: 'PVE.dc.CmdMenu',
+ xtype: 'guestSelectionCmdMenu',
+
+ minWidth: 220,
+
+ initComponent: function () {
+ let me = this;
+
+ if (!me.vmids?.length) {
+ throw 'no vmids specified';
+ }
+
+ me.title = `${gettext('Selected Guests')}`;
+
+ me.extraHandlerArgs = {
+ vmids: me.vmids,
+ };
+
+ me.callParent();
+ },
+});
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH pve-manager 3/3] ui: resource tree: allow selecting multiple guests for bulk actions
2026-10-27 14:30 [RFC manager 0/3] add bulk actions cmdmenu with multi select in resource tree Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 1/3] ui: bulk action window: allow restricting the guest list by VMIDs Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 2/3] ui: bulk actions: add cmdmenu with guest selection Nicolas Frey
@ 2026-10-27 14:30 ` Nicolas Frey
2 siblings, 0 replies; 4+ messages in thread
From: Nicolas Frey @ 2026-10-27 14:30 UTC (permalink / raw)
To: pve-devel
by switching the selmModel mode to 'MULTI' and restricting those selects
to guest resources only. now opens `PVE.dc.GuestSelectionCmdMenu` as the
context menu on right click, instead of the one for that resource.
Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
---
www/manager6/Utils.js | 17 ++++++++++++++++-
www/manager6/Workspace.js | 6 +++++-
www/manager6/tree/ResourceTree.js | 10 +++++++++-
3 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 8b99371d..1efce1a4 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1615,7 +1615,22 @@ Ext.define('PVE.Utils', {
let menu;
let type = record.data.type;
- if (record.data.template) {
+ let selModel = v.getSelectionModel();
+ let selection = selModel.isSelected(record) ? selModel.getSelection() : [];
+ let vmids =
+ selection
+ .filter(
+ (rec) =>
+ (rec.data.type === 'qemu' || rec.data.type === 'lxc') &&
+ !rec.data.template,
+ )
+ .map((rec) => rec.data.vmid);
+
+ if (selection.length > 1 && vmids.length) {
+ menu = Ext.create('PVE.dc.GuestSelectionCmdMenu', {
+ vmids,
+ });
+ } else if (record.data.template) {
if (type === 'qemu' || type === 'lxc') {
menu = Ext.create('PVE.menu.TemplateMenu', {
pveSelNode: record,
diff --git a/www/manager6/Workspace.js b/www/manager6/Workspace.js
index 189d3373..f1b0c90a 100644
--- a/www/manager6/Workspace.js
+++ b/www/manager6/Workspace.js
@@ -232,9 +232,13 @@ Ext.define('PVE.StdWorkspace', {
flex: 1,
selModel: {
selType: 'treemodel',
+ mode: 'MULTI',
+ allowDeselect: true,
listeners: {
selectionchange: function (sm, selected) {
- if (selected.length <= 0) {
+ // when selecting multiple guests, another selection (in multi-select)
+ // should not switch the view
+ if (selected.length !== 1) {
return;
}
let treeNode = selected[0];
diff --git a/www/manager6/tree/ResourceTree.js b/www/manager6/tree/ResourceTree.js
index e2acc431..971c1140 100644
--- a/www/manager6/tree/ResourceTree.js
+++ b/www/manager6/tree/ResourceTree.js
@@ -547,7 +547,15 @@ Ext.define('PVE.tree.ResourceTree', {
beforeselect: function (tree, record, index, eopts) {
let allow = me.allowSelection;
me.allowSelection = true;
- return allow;
+ if (!allow) {
+ return false;
+ }
+ // only guests can be part of a selection of multiple entries, as they're the
+ // only resources with bulk actions
+ let isGuest = (rec) =>
+ (rec.data.type === 'qemu' || rec.data.type === 'lxc') && !rec.data.template;
+ let others = tree.getSelection().filter((rec) => rec !== record);
+ return !others.length || (isGuest(record) && others.every(isGuest));
},
itemdblclick: PVE.Utils.openTreeConsole,
afterrender: function () {
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-10-27 14:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-27 14:30 [RFC manager 0/3] add bulk actions cmdmenu with multi select in resource tree Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 1/3] ui: bulk action window: allow restricting the guest list by VMIDs Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 2/3] ui: bulk actions: add cmdmenu with guest selection Nicolas Frey
2026-10-27 14:30 ` [PATCH pve-manager 3/3] ui: resource tree: allow selecting multiple guests for bulk actions Nicolas Frey
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.