ui: add bulk suspend support

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
This commit is contained in:
Hannes Laimer 2023-11-13 11:20:46 +01:00 committed by Thomas Lamprecht
parent 5f04abc2c3
commit 9ed1408b09
4 changed files with 33 additions and 2 deletions

View File

@ -2000,6 +2000,7 @@ Ext.define('PVE.Utils', {
spiceshell: ['', gettext('Shell') + ' (Spice)'],
startall: ['', gettext('Bulk start VMs and Containers')],
stopall: ['', gettext('Bulk shutdown VMs and Containers')],
suspendall: ['', gettext('Suspend all VMs')],
unknownimgdel: ['', gettext('Destroy image from unknown guest')],
wipedisk: ['Device', gettext('Wipe Disk')],
vncproxy: ['VM/CT', gettext('Console')],

View File

@ -56,6 +56,20 @@ Ext.define('PVE.node.CmdMenu', {
});
},
},
{
text: gettext('Bulk Suspend'),
itemId: 'bulksuspend',
iconCls: 'fa fa-fw fa-download',
handler: function() {
Ext.create('PVE.window.BulkAction', {
nodename: this.up('menu').nodename,
title: gettext('Bulk Suspend'),
btnText: gettext('Suspend'),
action: 'suspendall',
autoShow: true,
});
},
},
{
text: gettext('Bulk Migrate'),
itemId: 'bulkmigrate',
@ -129,6 +143,7 @@ Ext.define('PVE.node.CmdMenu', {
if (!caps.vms['VM.PowerMgmt']) {
me.getComponent('bulkstart').setDisabled(true);
me.getComponent('bulkstop').setDisabled(true);
me.getComponent('bulksuspend').setDisabled(true);
}
if (!caps.nodes['Sys.PowerMgmt']) {
me.getComponent('wakeonlan').setDisabled(true);

View File

@ -65,6 +65,20 @@ Ext.define('PVE.node.Config', {
});
},
},
{
text: gettext('Bulk Suspend'),
iconCls: 'fa fa-fw fa-download',
disabled: !caps.vms['VM.PowerMgmt'],
handler: function() {
Ext.create('PVE.window.BulkAction', {
autoShow: true,
nodename: nodename,
title: gettext('Bulk Suspend'),
btnText: gettext('Suspend'),
action: 'suspendall',
});
},
},
{
text: gettext('Bulk Migrate'),
iconCls: 'fa fa-fw fa-send-o',

View File

@ -10,7 +10,7 @@ Ext.define('PVE.window.BulkAction', {
},
border: false,
// the action to set, currently there are: `startall`, `migrateall`, `stopall`
// the action to set, currently there are: `startall`, `migrateall`, `stopall`, `suspendall`
action: undefined,
submit: function(params) {
@ -144,6 +144,7 @@ Ext.define('PVE.window.BulkAction', {
};
let defaultStatus = me.action === 'migrateall' ? '' : me.action === 'startall' ? 'stopped' : 'running';
let defaultType = me.action === 'suspendall' ? 'qemu' : '';
let statusMap = [];
let poolMap = [];
@ -318,7 +319,7 @@ Ext.define('PVE.window.BulkAction', {
fieldLabel: gettext("Type"),
emptyText: gettext('All'),
editable: false,
value: '',
value: defaultType,
store: [
['', gettext('All')],
['lxc', gettext('CT')],