]> git.proxmox.com Git - pve-manager.git/commitdiff
GUI: mobe startall/stopall/migrateall into submenu
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 11 Feb 2015 08:15:00 +0000 (09:15 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 11 Feb 2015 08:15:00 +0000 (09:15 +0100)
www/manager/Utils.js
www/manager/node/Config.js

index 761c4765b01e2164571e95640751d012383c044e..c293b0613eac0d5e0e72e501db3b6010cb648a30 100644 (file)
@@ -555,7 +555,8 @@ Ext.define('PVE.Utils', { statics: {
        vzdump: ['', gettext('Backup') ],
        aptupdate: ['', gettext('Update package database') ],
        startall: [ '', gettext('Start all VMs and Containers') ],
-       stopall: [ '', gettext('Stop all VMs and Containers') ]
+       stopall: [ '', gettext('Stop all VMs and Containers') ],
+       migrateall: [ '', gettext('Migrate all VMs and Containers') ]
     },
 
     format_task_description: function(type, id) {      
index 7e0d04a880490148cf1e55e54bfa358ce98b44fb..b526877525f483fce1d78a0045e5878cc841f9ac 100644 (file)
@@ -28,48 +28,67 @@ Ext.define('PVE.node.Config', {
                }
            });
        };
-
-       var startallvmBtn = Ext.create('PVE.button.Button', {
-           text: gettext('Start All VMs'),
-           confirmMsg: Ext.String.format(gettext("Do you really want to start all Vms on  node {0}?"), nodename),
-           handler: function() {
-               PVE.Utils.API2Request({
-                   params: { force: 1 },
-                   url: '/nodes/' + nodename + '/startall',
-                   method: 'POST',
-                   waitMsgTarget: me,
-                       failure: function(response, opts) {
-                       Ext.Msg.alert('Error', response.htmlStatus);
-                   }
-               });
-           }
-       });
-
-       var stopallvmBtn = Ext.create('PVE.button.Button', {
-           text: gettext('Stop All VMs'),
-           confirmMsg: Ext.String.format(gettext("Do you really want to stop all Vms on  node {0}?"), nodename),
-           handler: function() {
-               PVE.Utils.API2Request({
-                   url: '/nodes/' + nodename + '/stopall',
-                   method: 'POST',
-                   waitMsgTarget: me,
-                       failure: function(response, opts) {
-                       Ext.Msg.alert('Error', response.htmlStatus);
+       
+       var actionBtn = Ext.create('Ext.Button', {
+           text: gettext('More'),
+           disabled: !caps.nodes['Sys.PowerMgmt'],
+           menu: new Ext.menu.Menu({
+               items: [
+                   {
+                       text: gettext('Start All VMs'),
+                       icon: '/pve2/images/start.png',
+                       handler: function() {
+                           var msg = Ext.String.format(gettext("Do you really want to start all Vms on  node {0}?"), nodename);
+                           Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
+                               if (btn !== 'yes') {
+                                   return;
+                               }
+                               PVE.Utils.API2Request({
+                                   params: { force: 1 },
+                                   url: '/nodes/' + nodename + '/startall',
+                                   method: 'POST',
+                                   waitMsgTarget: me,
+                                   failure: function(response, opts) {
+                                       Ext.Msg.alert('Error', response.htmlStatus);
+                                   }
+                               });
+                           });
+                       }
+                   },
+                   {
+                       text: gettext('Stop All VMs'),
+                       icon: '/pve2/images/gtk-stop.png',
+                       handler: function() {
+                           var msg = Ext.String.format(gettext("Do you really want to stop all Vms on  node {0}?"), nodename);
+                           Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {
+                               if (btn !== 'yes') {
+                                   return;
+                               }
+                           
+                               PVE.Utils.API2Request({
+                                   url: '/nodes/' + nodename + '/stopall',
+                                   method: 'POST',
+                                   waitMsgTarget: me,
+                                   failure: function(response, opts) {
+                                       Ext.Msg.alert('Error', response.htmlStatus);
+                                   }
+                               });
+                           });
+                       }
+                   },
+                   {
+                       text: gettext('Migrate All VMs'),
+                       icon: '/pve2/images/forward.png',
+                       handler: function() {
+                           var win = Ext.create('PVE.window.MigrateAll', {
+                               nodename: nodename,
+                           });
+                           win.show();
+                       }
                    }
-               });
-           }
-       });
-
-       var migrateallvmBtn = Ext.create('PVE.button.Button', {
-           text: gettext('Migrate All VMs'),
-           handler: function() {
-                var win = Ext.create('PVE.window.MigrateAll', {
-                    nodename: nodename,
-                });
-                win.show();
-                me.mon(win, 'close', me.reload, me);
-           }
-       });
+               ]
+           })
+       }); 
 
        var restartBtn = Ext.create('PVE.button.Button', {
            text: gettext('Restart'),
@@ -102,7 +121,7 @@ Ext.define('PVE.node.Config', {
            title: gettext('Node') + " '" + nodename + "'",
            hstateid: 'nodetab',
            defaults: { statusStore: me.statusStore },
-           tbar: [ startallvmBtn, stopallvmBtn, migrateallvmBtn, restartBtn, shutdownBtn, shellBtn ]
+           tbar: [ restartBtn, shutdownBtn, shellBtn, actionBtn]
        });
 
        if (caps.nodes['Sys.Audit']) {