From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id B2F6E1FF185 for ; Mon, 17 Nov 2025 11:42:25 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id C711914075; Mon, 17 Nov 2025 11:42:28 +0100 (CET) Message-ID: Date: Mon, 17 Nov 2025 11:41:53 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: Proxmox VE development discussion , Dominik Csapak References: <20251117092110.628324-1-d.csapak@proxmox.com> Content-Language: en-US From: Thomas Lamprecht In-Reply-To: <20251117092110.628324-1-d.csapak@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1763376085041 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.023 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 Subject: Re: [pve-devel] [PATCH manager] ui: lxc options: fix rendering default and '0' value for tty count 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: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" Am 17.11.25 um 10:21 schrieb Dominik Csapak: > if '0' was entered, the options grid would show an empty line. Fix that > by adding a renderer that checks if the value is a number. I was a bit confused by this, as it sounded like setting it to '0' in the frontend caused some non-numeric value in the backend which then was handled wrong here. But it's really just the default renderer in PendingObjectGrid's renderValue using a truthy fallback to empty string for the value, i.e. `value || ''` Nowadays we could replace the boolean or `||` with a nullish coalescing operator `??`, which is limited to fallback only if the value is exactly one of `null` or `undefined`, that should also fix these issues in a more generic fashion. > > If the default is set, the edit window would always pre-fill the value > '2' instead of leaving the field empty. Fix that by removing the > manually set 'value' property. > > Reported-by: Dietmar Maurer > Signed-off-by: Dominik Csapak > --- > www/manager6/lxc/Options.js | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/www/manager6/lxc/Options.js b/www/manager6/lxc/Options.js > index 6cc2e2b4..0acb88f4 100644 > --- a/www/manager6/lxc/Options.js > +++ b/www/manager6/lxc/Options.js > @@ -81,6 +81,7 @@ Ext.define('PVE.lxc.Options', { > tty: { > header: gettext('TTY count'), > defaultValue: 2, > + renderer: (value) => (Ext.isNumber(value) ? value : '2'), But this would mask any other non-numeric value with "2" too, and then be potentially misleading. Initially thought this was more theoretic, but Ext.isNumeric basically comes down to `typeof value === "number"', so if anything in the perl backend just "looks" at the returned value the wrong way and it gets stringified along the way, we would mask the underlying value here. In Yew based UIs being fully typed is OK as there deserialization fails explicitly and one has to chose the behavior for how one wants to handle this, but in JS we (sadly) cannot really relay on this. > editor: caps.vms['VM.Config.Options'] > ? { > xtype: 'proxmoxWindowEdit', > @@ -90,7 +91,6 @@ Ext.define('PVE.lxc.Options', { > name: 'tty', > minValue: 0, > maxValue: 6, > - value: 2, > fieldLabel: gettext('TTY count'), > emptyText: gettext('Default'), > deleteEmpty: true, _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel