namely for 'tag-tree-style' and 'tag-colors'.
display the tag overrides directly as they will appear as tags

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 www/manager6/Utils.js         | 20 ++++++++++++++++
 www/manager6/dc/OptionView.js | 43 ++++++++++++++++++++++++++++++++++-
 2 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/www/manager6/Utils.js b/www/manager6/Utils.js
index 63687d08..2fe823ff 100644
--- a/www/manager6/Utils.js
+++ b/www/manager6/Utils.js
@@ -1862,6 +1862,26 @@ Ext.define('PVE.Utils', {
        
Ext.ComponentQuery.query('pveResourceTree')[0].setUserCls(`proxmox-tags-${style}`);
     },
 
+    tagTreeStyles: {
+       '__default__': Proxmox.Utils.defaultText,
+       'full': gettext('Full'),
+       'circle': gettext('Circle'),
+       'dense': gettext('Dense'),
+       'none': Proxmox.Utils.NoneText,
+    },
+
+    renderTags: function(tagstext, overrides) {
+       let text = '';
+       if (tagstext) {
+           let tags = (tagstext.split(/[,; ]/) || []).filter(t => !!t);
+           text += ' ';
+           tags.forEach((tag) => {
+               text += Proxmox.Utils.getTagElement(tag, overrides);
+           });
+       }
+       return text;
+    },
+
     tagCharRegex: /^[a-z0-9+_.-]$/i,
 },
 
diff --git a/www/manager6/dc/OptionView.js b/www/manager6/dc/OptionView.js
index 6b30ede9..aef77964 100644
--- a/www/manager6/dc/OptionView.js
+++ b/www/manager6/dc/OptionView.js
@@ -5,6 +5,7 @@ Ext.define('PVE.dc.OptionView', {
     onlineHelp: 'datacenter_configuration_file',
 
     monStoreErrors: true,
+    userCls: 'proxmox-tags-full',
 
     add_inputpanel_row: function(name, text, opts) {
        var me = this;
@@ -284,7 +285,43 @@ Ext.define('PVE.dc.OptionView', {
            minValue: 1,
            maxValue: 64, // arbitrary but generous limit as limits are good
        });
-
+       me.add_combobox_row('tag-tree-style', gettext('Tag Tree Style'), {
+           renderer: (value) => PVE.Utils.tagTreeStyles[value] ?? value,
+           comboItems: Object.entries(PVE.Utils.tagTreeStyles),
+           defaultValue: '__default__',
+           deleteEmpty: true,
+       });
+       me.rows['tag-colors'] = {
+           required: true,
+           renderer: (value) => {
+               if (value === undefined) {
+                   return gettext('No Overrides');
+               }
+               let overrides = PVE.Utils.parseTagOverrides(value);
+               let txt = '';
+               for (const tag of Object.keys(overrides)) {
+                   txt += Proxmox.Utils.getTagElement(tag, overrides);
+               }
+               return txt;
+           },
+           header: gettext('Tag Color Override'),
+           editor: {
+               xtype: 'proxmoxWindowEdit',
+               width: 800,
+               bodyPadding: 0,
+               subject: gettext('Tag Color Override'),
+               fieldDefaults: {
+                   labelWidth: 100,
+               },
+               url: '/api2/extjs/cluster/options',
+               items: [{
+                   name: 'tag-colors',
+                   xtype: 'pveTagColorGrid',
+                   deleteEmpty: true,
+                   height: 300,
+               }],
+           },
+       };
        me.selModel = Ext.create('Ext.selection.RowModel', {});
 
        Ext.apply(me, {
@@ -319,6 +356,10 @@ Ext.define('PVE.dc.OptionView', {
            if (rec.data.value === '__default__') {
                delete PVE.VersionInfo.console;
            }
+
+           let colors = store.getById('tag-colors')?.data?.value;
+           let style = store.getById('tag-tree-style')?.data?.value;
+           PVE.Utils.updateTagSettings(colors, style);
        });
 
        me.on('activate', me.rstore.startUpdate);
-- 
2.30.2



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

Reply via email to