From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 06DBB1FF185 for ; Mon, 17 Nov 2025 12:09:13 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id B8CBB14F52; Mon, 17 Nov 2025 12:09:13 +0100 (CET) Message-ID: <0b43bddc-197b-44ab-8114-3972da381e55@proxmox.com> Date: Mon, 17 Nov 2025 12:09:00 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: Thomas Lamprecht , Proxmox VE development discussion References: <20251117092110.628324-1-d.csapak@proxmox.com> Content-Language: en-US From: Dominik Csapak In-Reply-To: X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1763377720725 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.029 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. 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-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" On 11/17/25 11:41 AM, Thomas Lamprecht wrote: > 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. > true, yeah i'll send a separate patch for that, then the first part here shouldn't be necessary at all. >> >> 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. caution there are two methods in extjs here: isNumber (which i used and has the properties you described) and isNumeric, which actually tries to parse the value and checks if it's a number (not NaN), so that would have worked out better (but still unnecessary if the pending object grid is fixed) > > 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