From ce8dac510e2043381c8a0a677a8b5be0e2a664a7 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 5 Apr 2016 11:31:47 +0200 Subject: [PATCH] make contextmenus status-sensitive for example, allow starting from contextmenu only if vm/ct is stopped, etc. Signed-off-by: Dominik Csapak --- www/manager6/lxc/CmdMenu.js | 21 +++++++++++++++++++++ www/manager6/qemu/CmdMenu.js | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/www/manager6/lxc/CmdMenu.js b/www/manager6/lxc/CmdMenu.js index 53652a80..a21edfcf 100644 --- a/www/manager6/lxc/CmdMenu.js +++ b/www/manager6/lxc/CmdMenu.js @@ -27,12 +27,29 @@ Ext.define('PVE.lxc.CmdMenu', { }); }; + var running = false; + var stopped = true; + var suspended = false; + + switch (me.pveSelNode.data.status) { + case 'running': + running = true; + stopped = false; + break; + case 'paused': + stopped = false; + suspended = true; + break; + default: break; + } + me.title = 'CT ' + vmid; me.items = [ { text: gettext('Start'), iconCls: 'fa fa-fw fa-play', + disabled: running, handler: function() { vm_command('start'); } @@ -52,6 +69,7 @@ Ext.define('PVE.lxc.CmdMenu', { { text: gettext('Suspend'), iconCls: 'fa fa-fw fa-pause', + disabled: stopped || suspended, handler: function() { var msg = PVE.Utils.format_task_description('vzsuspend', vmid); Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) { @@ -66,6 +84,7 @@ Ext.define('PVE.lxc.CmdMenu', { { text: gettext('Resume'), iconCls: 'fa fa-fw fa-play', + disabled: !suspended, handler: function() { vm_command('resume'); } @@ -73,6 +92,7 @@ Ext.define('PVE.lxc.CmdMenu', { { text: gettext('Shutdown'), iconCls: 'fa fa-fw fa-power-off', + disabled: stopped || suspended, handler: function() { var msg = PVE.Utils.format_task_description('vzshutdown', vmid); Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) { @@ -87,6 +107,7 @@ Ext.define('PVE.lxc.CmdMenu', { { text: gettext('Stop'), iconCls: 'fa fa-fw fa-stop', + disabled: stopped, handler: function() { var msg = PVE.Utils.format_task_description('vzstop', vmid); Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) { diff --git a/www/manager6/qemu/CmdMenu.js b/www/manager6/qemu/CmdMenu.js index 864060b3..719d1362 100644 --- a/www/manager6/qemu/CmdMenu.js +++ b/www/manager6/qemu/CmdMenu.js @@ -27,12 +27,29 @@ Ext.define('PVE.qemu.CmdMenu', { }); }; + var running = false; + var stopped = true; + var suspended = false; + + switch (me.pveSelNode.data.status) { + case 'running': + running = true; + stopped = false; + break; + case 'paused': + stopped = false; + suspended = true; + break; + default: break; + } + me.title = "VM " + vmid; me.items = [ { text: gettext('Start'), iconCls: 'fa fa-fw fa-play', + disabled: running, handler: function() { vm_command('start'); } @@ -52,6 +69,7 @@ Ext.define('PVE.qemu.CmdMenu', { { text: gettext('Suspend'), iconCls: 'fa fa-fw fa-pause', + disabled: stopped || suspended, handler: function() { var msg = PVE.Utils.format_task_description('qmsuspend', vmid); Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) { @@ -65,6 +83,7 @@ Ext.define('PVE.qemu.CmdMenu', { { text: gettext('Resume'), iconCls: 'fa fa-fw fa-play', + disabled: !suspended, handler: function() { vm_command('resume'); } @@ -72,6 +91,7 @@ Ext.define('PVE.qemu.CmdMenu', { { text: gettext('Shutdown'), iconCls: 'fa fa-fw fa-power-off', + disabled: stopped || suspended, handler: function() { var msg = PVE.Utils.format_task_description('qmshutdown', vmid); Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) { @@ -86,6 +106,7 @@ Ext.define('PVE.qemu.CmdMenu', { { text: gettext('Stop'), iconCls: 'fa fa-fw fa-stop', + disabled: stopped, handler: function() { var msg = PVE.Utils.format_task_description('qmstop', vmid); Ext.Msg.confirm(gettext('Confirm'), msg, function(btn) {