Signed-off-by: Hannes Laimer <h.lai...@proxmox.com>
---
 www/manager6/Utils.js             |  1 +
 www/manager6/form/VMSelector.js   |  4 ++++
 www/manager6/node/CmdMenu.js      | 14 ++++++++++++++
 www/manager6/node/Config.js       | 14 ++++++++++++++
 www/manager6/window/BulkAction.js |  2 +-
 5 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 06b63315..e74fd394 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1991,6 +1991,7 @@ Ext.define('PVE.Utils', {
            spiceshell: ['', gettext('Shell') + ' (Spice)'],
            startall: ['', gettext('Start all VMs and Containers')],
            stopall: ['', gettext('Stop all 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')],
diff --git a/www/manager6/form/VMSelector.js b/www/manager6/form/VMSelector.js
index d59847f2..ad0bfc03 100644
--- a/www/manager6/form/VMSelector.js
+++ b/www/manager6/form/VMSelector.js
@@ -233,6 +233,10 @@ Ext.define('PVE.form.VMSelector', {
                case 'stopall':
                    statusfilter = 'running';
                    break;
+               case 'suspendall':
+                   statusfilter = 'running';
+                   me.getStore().addFilter({ property: 'type', value: /qemu/ 
});
+                   break;
            }
            if (statusfilter !== '') {
                me.getStore().addFilter([{
diff --git a/www/manager6/node/CmdMenu.js b/www/manager6/node/CmdMenu.js
index dc56ef08..c64a54d2 100644
--- a/www/manager6/node/CmdMenu.js
+++ b/www/manager6/node/CmdMenu.js
@@ -56,6 +56,20 @@ Ext.define('PVE.node.CmdMenu', {
                });
            },
        },
+       {
+           text: gettext('Bulk Suspend'),
+           itemId: 'bulkstop',
+           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',
diff --git a/www/manager6/node/Config.js b/www/manager6/node/Config.js
index 6ed2172a..ac5e6b25 100644
--- a/www/manager6/node/Config.js
+++ b/www/manager6/node/Config.js
@@ -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',
diff --git a/www/manager6/window/BulkAction.js 
b/www/manager6/window/BulkAction.js
index 949e167e..1a6d83fd 100644
--- a/www/manager6/window/BulkAction.js
+++ b/www/manager6/window/BulkAction.js
@@ -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) {
-- 
2.39.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to