[pve-devel] [PATCH manager v2 1/1] gui: show lock in status bar of vms/cts
Dominik Csapak
d.csapak at proxmox.com
Thu Mar 21 10:55:20 CET 2019
also add 'tbarSpacing' parameter to ConfigPanel, that controls
the spacing after the title
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v1:
* moved lock to the left
* different template symbol (lock) instead of symbol: lock
@thomas: i used your suggestions, but renamed the parameter,
since titleAlign already exists and i do not like negated options
also, this way it is documented as parameter of the class
www/manager6/lxc/Config.js | 21 ++++++++++++++++++++-
www/manager6/panel/ConfigPanel.js | 6 +++++-
www/manager6/qemu/Config.js | 19 ++++++++++++++++++-
3 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/www/manager6/lxc/Config.js b/www/manager6/lxc/Config.js
index 51864f1a..9f219ed4 100644
--- a/www/manager6/lxc/Config.js
+++ b/www/manager6/lxc/Config.js
@@ -160,10 +160,23 @@ Ext.define('PVE.lxc.Config', {
vmid: vmid
});
+ var statusTxt = Ext.create('Ext.toolbar.TextItem', {
+ data: {
+ lock: undefined
+ },
+ tpl: [
+ '<tpl if="lock">',
+ '<i class="fa fa-lg fa-lock"></i> ({lock})',
+ '</tpl>'
+ ]
+ });
+
+
Ext.apply(me, {
title: Ext.String.format(gettext("Container {0} on node '{1}'"), vm.text, nodename),
hstateid: 'lxctab',
- tbar: [ startBtn, shutdownBtn, migrateBtn, consoleBtn, moreBtn ],
+ tbarSpacing: false,
+ tbar: [ statusTxt, '->', startBtn, shutdownBtn, migrateBtn, consoleBtn, moreBtn ],
defaults: { statusStore: me.statusStore },
items: [
{
@@ -314,6 +327,7 @@ Ext.define('PVE.lxc.Config', {
me.mon(me.statusStore, 'load', function(s, records, success) {
var status;
+ var lock;
if (!success) {
status = 'unknown';
} else {
@@ -321,7 +335,12 @@ Ext.define('PVE.lxc.Config', {
status = rec ? rec.data.value : 'unknown';
rec = s.data.get('template');
template = rec.data.value || false;
+ rec = s.data.get('lock');
+ lock = rec ? rec.data.value : undefined;
}
+
+ statusTxt.update({ lock: lock });
+
startBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status === 'running' || template);
shutdownBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status !== 'running');
stopBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status === 'stopped');
diff --git a/www/manager6/panel/ConfigPanel.js b/www/manager6/panel/ConfigPanel.js
index e3c71eef..dbdf5050 100644
--- a/www/manager6/panel/ConfigPanel.js
+++ b/www/manager6/panel/ConfigPanel.js
@@ -46,6 +46,8 @@ Ext.define('PVE.panel.Config', {
showSearch: true, // add a ressource grid with a search button as first tab
viewFilter: undefined, // a filter to pass to that ressource grid
+ tbarSpacing: true, // if true, adds a spacer after the title in tbar
+
dockedItems: [{
// this is needed for the overflow handler
xtype: 'toolbar',
@@ -183,7 +185,9 @@ Ext.define('PVE.panel.Config', {
}
}
- tbar.unshift('->');
+ if (me.tbarSpacing) {
+ tbar.unshift('->');
+ }
tbar.unshift({
xtype: 'tbtext',
text: title,
diff --git a/www/manager6/qemu/Config.js b/www/manager6/qemu/Config.js
index 38496f4f..0474fdb4 100644
--- a/www/manager6/qemu/Config.js
+++ b/www/manager6/qemu/Config.js
@@ -175,10 +175,22 @@ Ext.define('PVE.qemu.Config', {
vmid: vmid
});
+ var statusTxt = Ext.create('Ext.toolbar.TextItem', {
+ data: {
+ lock: undefined
+ },
+ tpl: [
+ '<tpl if="lock">',
+ '<i class="fa fa-lg fa-lock"></i> ({lock})',
+ '</tpl>'
+ ]
+ });
+
Ext.apply(me, {
title: Ext.String.format(gettext("Virtual Machine {0} on node '{1}'"), vm.text, nodename),
hstateid: 'kvmtab',
- tbar: [ resumeBtn, startBtn, shutdownBtn, migrateBtn, consoleBtn, moreBtn ],
+ tbarSpacing: false,
+ tbar: [ statusTxt, '->', resumeBtn, startBtn, shutdownBtn, migrateBtn, consoleBtn, moreBtn ],
defaults: { statusStore: me.statusStore },
items: [
{
@@ -331,6 +343,7 @@ Ext.define('PVE.qemu.Config', {
var qmpstatus;
var spice = false;
var xtermjs = false;
+ var lock;
if (!success) {
status = qmpstatus = 'unknown';
@@ -341,6 +354,8 @@ Ext.define('PVE.qemu.Config', {
qmpstatus = rec ? rec.data.value : 'unknown';
rec = s.data.get('template');
template = rec.data.value || false;
+ rec = s.data.get('lock');
+ lock = rec ? rec.data.value : undefined;
spice = s.data.get('spice') ? true : false;
xtermjs = s.data.get('serial') ? true : false;
@@ -362,6 +377,8 @@ Ext.define('PVE.qemu.Config', {
consoleBtn.setEnableSpice(spice);
consoleBtn.setEnableXtermJS(xtermjs);
+ statusTxt.update({ lock: lock });
+
startBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status === 'running' || template);
shutdownBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status !== 'running');
me.down('#removeBtn').setDisabled(!caps.vms['VM.Allocate'] || status !== 'stopped');
--
2.11.0
More information about the pve-devel
mailing list