From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 0A91ECB92 for ; Tue, 12 Apr 2022 15:34:34 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 87AFF1802E for ; Tue, 12 Apr 2022 15:34:32 +0200 (CEST) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 26E85101E8 for ; Tue, 12 Apr 2022 15:34:26 +0200 (CEST) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id F40024163D for ; Tue, 12 Apr 2022 15:34:25 +0200 (CEST) From: Dominik Csapak To: pve-devel@lists.proxmox.com Date: Tue, 12 Apr 2022 15:34:18 +0200 Message-Id: <20220412133423.1021857-11-d.csapak@proxmox.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220412133423.1021857-1-d.csapak@proxmox.com> References: <20220412133423.1021857-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL 0.138 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pve-devel] [PATCH manager v6 06/11] ui: dc/OptionView: add editors for tag settings X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Apr 2022 13:34:34 -0000 namely for 'tag-tree-style' and 'tag-colors'. display the tag overrides directly as they will appear as tags Signed-off-by: Dominik Csapak --- 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