this way they are always visible when a user has selected a vm

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 www/manager6/lxc/Config.js  | 23 ++++++++++++++++++++---
 www/manager6/qemu/Config.js | 24 +++++++++++++++++++++---
 2 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/www/manager6/lxc/Config.js b/www/manager6/lxc/Config.js
index 0f81c1da..8d7a7f1d 100644
--- a/www/manager6/lxc/Config.js
+++ b/www/manager6/lxc/Config.js
@@ -163,21 +163,35 @@ Ext.define('PVE.lxc.Config', {
 
        var statusTxt = Ext.create('Ext.toolbar.TextItem', {
            data: {
-               lock: undefined
+               lock: undefined,
+               tags: [],
            },
            tpl: [
                '<tpl if="lock">',
                '<i class="fa fa-lg fa-lock"></i> ({lock})',
+               '</tpl>',
+               ' ',
+               '<tpl if="tags.length &gt; 0">',
+                   '<tpl for="tags" between=" ">',
+                   '{.}',
+                   '</tpl>',
+               '<tpl else>',
+                   gettext('No Tags'),
                '</tpl>'
            ]
        });
 
+       var tagEditBtn = Ext.create('PVE.button.TagEditButton', {
+           hidden: !caps.vms['VM.Config.Options'],
+           editurl: base_url + '/config',
+           callback: () => { me.statusStore.load(); },
+       });
 
        Ext.apply(me, {
            title: Ext.String.format(gettext("Container {0} on node '{1}'"), 
vm.text, nodename),
            hstateid: 'lxctab',
            tbarSpacing: false,
-           tbar: [ statusTxt, '->', startBtn, shutdownBtn, migrateBtn, 
consoleBtn, moreBtn ],
+           tbar: [ statusTxt, tagEditBtn, '->', startBtn, shutdownBtn, 
migrateBtn, consoleBtn, moreBtn ],
            defaults: { statusStore: me.statusStore },
            items: [
                {
@@ -329,6 +343,7 @@ Ext.define('PVE.lxc.Config', {
        me.mon(me.statusStore, 'load', function(s, records, success) {
            var status;
            var lock;
+           var tags;
            if (!success) {
                status = 'unknown';
            } else {
@@ -338,9 +353,11 @@ Ext.define('PVE.lxc.Config', {
                template = rec.data.value || false;
                rec = s.data.get('lock');
                lock = rec ? rec.data.value : undefined;
+               rec = s.data.get('tags');
+               tags = rec ? rec.data.value.split(/[,; ]/).map(val => 
Proxmox.Utils.getTagElement(val) ) : [];
            }
 
-           statusTxt.update({ lock: lock });
+           statusTxt.update({ lock: lock, tags: tags });
 
            startBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status === 
'running' || template);
            shutdownBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status !== 
'running');
diff --git a/www/manager6/qemu/Config.js b/www/manager6/qemu/Config.js
index ccf30a9b..6a45445d 100644
--- a/www/manager6/qemu/Config.js
+++ b/www/manager6/qemu/Config.js
@@ -205,20 +205,35 @@ Ext.define('PVE.qemu.Config', {
 
        var statusTxt = Ext.create('Ext.toolbar.TextItem', {
            data: {
-               lock: undefined
+               lock: undefined,
+               tags: [],
            },
            tpl: [
                '<tpl if="lock">',
                '<i class="fa fa-lg fa-lock"></i> ({lock})',
+               '</tpl>',
+               ' ',
+               '<tpl if="tags.length &gt; 0">',
+                   '<tpl for="tags" between=" ">',
+                   '{.}',
+                   '</tpl>',
+               '<tpl else>',
+                   gettext('No Tags'),
                '</tpl>'
            ]
        });
 
+       var tagEditBtn = Ext.create('PVE.button.TagEditButton', {
+           hidden: !caps.vms['VM.Config.Options'],
+           editurl: base_url + '/config',
+           callback: () => { me.statusStore.load(); },
+       });
+
        Ext.apply(me, {
            title: Ext.String.format(gettext("Virtual Machine {0} on node 
'{1}'"), vm.text, nodename),
            hstateid: 'kvmtab',
            tbarSpacing: false,
-           tbar: [ statusTxt, '->', resumeBtn, startBtn, shutdownBtn, 
migrateBtn, consoleBtn, moreBtn ],
+           tbar: [ statusTxt, tagEditBtn, '->', resumeBtn, startBtn, 
shutdownBtn, migrateBtn, consoleBtn, moreBtn ],
            defaults: { statusStore: me.statusStore },
            items: [
                {
@@ -372,6 +387,7 @@ Ext.define('PVE.qemu.Config', {
            var spice = false;
            var xtermjs = false;
            var lock;
+           var tags;
 
            if (!success) {
                status = qmpstatus = 'unknown';
@@ -384,6 +400,8 @@ Ext.define('PVE.qemu.Config', {
                template = rec.data.value || false;
                rec = s.data.get('lock');
                lock = rec ? rec.data.value : undefined;
+               rec = s.data.get('tags');
+               tags = rec ? rec.data.value.split(',').map(val => 
Proxmox.Utils.getTagElement(val) ) : [];
 
                spice = s.data.get('spice') ? true : false;
                xtermjs = s.data.get('serial') ? true : false;
@@ -407,7 +425,7 @@ Ext.define('PVE.qemu.Config', {
            consoleBtn.setEnableSpice(spice);
            consoleBtn.setEnableXtermJS(xtermjs);
 
-           statusTxt.update({ lock: lock });
+           statusTxt.update({ lock: lock, tags: tags });
 
            startBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status === 
'running' || template);
            shutdownBtn.setDisabled(!caps.vms['VM.PowerMgmt'] || status !== 
'running');
-- 
2.20.1


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

Reply via email to