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 9524799C2B for ; Wed, 3 May 2023 11:51:25 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7603892CD for ; Wed, 3 May 2023 11:50:55 +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 for ; Wed, 3 May 2023 11:50:54 +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 82DAD47182 for ; Wed, 3 May 2023 11:50:54 +0200 (CEST) From: Christoph Heiss To: pve-devel@lists.proxmox.com Date: Wed, 3 May 2023 11:50:42 +0200 Message-Id: <20230503095042.137966-4-c.heiss@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230503095042.137966-1-c.heiss@proxmox.com> References: <20230503095042.137966-1-c.heiss@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.105 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy 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 3/3] ui: GuestStatusView: add 'privileged' and 'ostype' fields 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: Wed, 03 May 2023 09:51:25 -0000 The privileged status is displayed by adding a new row to the status panel, while the distribution logo and name are displayed on the right side of the title bar of the status panel. The latter fits neatly there, is rather unintrusive and yet still visible at first sight. This also solves the problem of having to create a bigger row, so that the icon is still easily recognisable. At the default font-size of 13pt, this really wasn't the case. I verified that each supported distro is present in the font and the name matches up and tested through all supported distros (including 'unmanaged'). Signed-off-by: Christoph Heiss --- www/manager6/panel/GuestStatusView.js | 51 ++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/www/manager6/panel/GuestStatusView.js b/www/manager6/panel/GuestStatusView.js index 8db1f492..c773f252 100644 --- a/www/manager6/panel/GuestStatusView.js +++ b/www/manager6/panel/GuestStatusView.js @@ -11,6 +11,30 @@ Ext.define('PVE.panel.GuestStatusView', { }; }, + controller: { + xclass: 'Ext.app.ViewController', + + init: view => { + if (view.pveSelNode.data.type !== 'lxc') { + return; + } + + const nodename = view.pveSelNode.data.node; + const vmid = view.pveSelNode.data.vmid; + + Proxmox.Utils.API2Request({ + url: `/api2/extjs/nodes/${nodename}/lxc/${vmid}/config`, + waitMsgTargetView: view, + method: 'GET', + success: ({ result }) => { + view.down('#unprivileged').updateValue( + Proxmox.Utils.format_boolean(result.data.unprivileged)); + view.ostype = result.data.ostype; + }, + }); + }, + }, + layout: { type: 'vbox', align: 'stretch', @@ -58,6 +82,15 @@ Ext.define('PVE.panel.GuestStatusView', { }, printBar: false, }, + { + itemId: 'unprivileged', + iconCls: 'fa fa-lock fa-fw', + title: gettext('Unprivileged'), + printBar: false, + cbind: { + hidden: '{isQemu}', + }, + }, { xtype: 'box', height: 15, @@ -134,6 +167,22 @@ Ext.define('PVE.panel.GuestStatusView', { + ')'; } - me.setTitle(me.getRecordValue('name') + text); + let title = `
${me.getRecordValue('name') + text}
`; + + if (me.pveSelNode.data.type === 'lxc' && me.ostype && me.ostype !== 'unmanaged') { + // Manual mappings for distros with special casing + const namemap = { + 'archlinux': 'Arch Linux', + 'nixos': 'NixOS', + 'opensuse': 'openSUSE', + 'centos': 'CentOS', + }; + + const distro = namemap[me.ostype] ?? Ext.String.capitalize(me.ostype); + title += `
+  ${distro}
`; + } + + me.setTitle(title); }, }); -- 2.39.2