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 77074D926 for ; Fri, 2 Dec 2022 14:50:55 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5E34935057 for ; Fri, 2 Dec 2022 14:50:25 +0100 (CET) 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 ; Fri, 2 Dec 2022 14:50:24 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 20DC344B6B for ; Fri, 2 Dec 2022 14:50:24 +0100 (CET) From: Matthias Heiserer To: pve-devel@lists.proxmox.com Date: Fri, 2 Dec 2022 14:50:16 +0100 Message-Id: <20221202135018.250016-1-m.heiserer@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.173 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 Subject: [pve-devel] [PATCH manager 1/3] fix #2435: GUI: LXC summary: Add privileged status and os type 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: Fri, 02 Dec 2022 13:50:55 -0000 The OS type is shown as icon, provided that we have an icon. Otherwise, no icon is shown. Signed-off-by: Matthias Heiserer --- The image package is on our internal repo. It uses the images from https://github.com/Lukas-W/font-logos www/index.html.tpl | 1 + www/manager6/panel/GuestStatusView.js | 27 +++++++++++++++++++++++++++ www/manager6/panel/GuestSummary.js | 22 ++++++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/www/index.html.tpl b/www/index.html.tpl index 0c819977..29d7b4d2 100644 --- a/www/index.html.tpl +++ b/www/index.html.tpl @@ -11,6 +11,7 @@ + [% IF langfile %] diff --git a/www/manager6/panel/GuestStatusView.js b/www/manager6/panel/GuestStatusView.js index 8db1f492..d38b9631 100644 --- a/www/manager6/panel/GuestStatusView.js +++ b/www/manager6/panel/GuestStatusView.js @@ -11,6 +11,14 @@ Ext.define('PVE.panel.GuestStatusView', { }; }, + controller: { + xclass: 'Ext.app.ViewController', + + init: function(view) { + view.applyLogos(this); + }, + }, + layout: { type: 'vbox', align: 'stretch', @@ -58,6 +66,25 @@ Ext.define('PVE.panel.GuestStatusView', { }, printBar: false, }, + { + title: gettext('OS type'), + printBar: false, + reference: 'ostype', + cbind: { + hidden: '{isQemu}', + disabled: '{isQemu}', + }, + }, + { + title: gettext('Privileged'), + printBar: false, + reference: 'privileged', + cbind: { + hidden: '{isQemu}', + disabled: '{isQemu}', + }, + iconCls: 'fa fa-user-circle-o fa-fw', + }, { xtype: 'box', height: 15, diff --git a/www/manager6/panel/GuestSummary.js b/www/manager6/panel/GuestSummary.js index 1565db3f..d6655393 100644 --- a/www/manager6/panel/GuestSummary.js +++ b/www/manager6/panel/GuestSummary.js @@ -30,6 +30,27 @@ Ext.define('PVE.guest.Summary', { var template = !!me.pveSelNode.data.template; var rstore = me.statusStore; + const applyLogos = function(controller) { + const updateView = (response) => { + const config = response.result.data; + const ostype = config.ostype; + const widget = controller.lookup("ostype"); + widget.setIconCls(`pve-itype-os-${ostype} pmx-icon`); + const label = widget.getComponent('label'); + label.update(Ext.apply(label.data, { + usage: ostype, + })); + const unprivileged = config.unprivileged; + controller.lookup('privileged').updateValue(!unprivileged); + }; + const url = `/api2/extjs/nodes/${nodename}/${type}/${vmid}/config`; + Proxmox.Utils.API2Request({ + url: url, + method: 'GET', + success: updateView, + }); + }; + var items = [ { xtype: template ? 'pveTemplateStatusView' : 'pveGuestStatusView', @@ -38,6 +59,7 @@ Ext.define('PVE.guest.Summary', { itemId: 'gueststatus', pveSelNode: me.pveSelNode, rstore: rstore, + applyLogos: applyLogos, }, { xtype: 'pmxNotesView', -- 2.30.2