From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 57E0D1FF16B for <inbox@lore.proxmox.com>; Tue, 1 Jul 2025 16:37:58 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 905A7843A; Tue, 1 Jul 2025 16:38:35 +0200 (CEST) Message-ID: <e7906cc9-8a7f-4f77-93c1-e1ae1a1f12f5@proxmox.com> Date: Tue, 1 Jul 2025 16:38:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>, Daniel Kral <d.kral@proxmox.com> References: <20250620143148.218469-1-d.kral@proxmox.com> <20250620143148.218469-41-d.kral@proxmox.com> Content-Language: en-US From: =?UTF-8?Q?Michael_K=C3=B6ppl?= <m.koeppl@proxmox.com> In-Reply-To: <20250620143148.218469-41-d.kral@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.016 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.237 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 v2 5/5] ui: ha: add ha rules components and menu entry X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> On 6/20/25 16:31, Daniel Kral wrote: > + > + me.columns.unshift( > + { > + header: gettext('State'), > + xtype: 'actioncolumn', > + width: 25, > + align: 'center', > + dataIndex: 'state', > + items: [ > + { > + isActionDisabled: (table, rowIndex, colIndex, item, { data }) => > + data.state !== 'contradictory', > + handler: (table, rowIndex, colIndex, item, event, { data }) => { > + Ext.create('PVE.ha.RuleErrorsModal', { > + autoShow: true, > + errors: data.errors ?? {}, > + }); Even though not super important to this series, I think you could avoid defining a new modal here by doing something like this: let listItems = Object.entries(data.errors ?? {}) .flatMap(([opt, messages]) => messages.map(message => `<li>${Ext.htmlEncode(`${opt}: ${message}`)}</li>`)) .join(''); Ext.Msg.show({ title: gettext("Rule errors"), icon: Ext.Msg.WARNING, msg: `<div> <p>${gettext('The HA rule has the following errors:')}</p> <ul style="list-style-position: inside; padding-left: 0;"> ${listItems} </ul> </div>`, }); Just a suggestion, of course. If you plan to keep the RuleErrorsModal, the padding made it seem a bit off compared to other dialogs throughout the manager. > + }, > + getTip: (value) => { > + switch (value) { > + case 'contradictory': > + return gettext('Errors'); > + case 'disabled': > + return gettext('Disabled'); > + default: > + return gettext('Enabled'); > + } > + }, > + getClass: (value) => { > + let iconName = 'check'; > + > + if (value === 'contradictory') { > + iconName = 'exclamation-triangle'; > + } else if (value === 'disabled') { > + iconName = 'minus'; > + } > + > + return `fa fa-${iconName}`; > + }, > + }, > + ], > + }, > + { > + header: gettext('Rule'), > + width: 200, > + dataIndex: 'rule', > + }, > + ); > + > + me.columns.push({ > + header: gettext('Comment'), > + flex: 1, > + renderer: Ext.String.htmlEncode, > + dataIndex: 'comment', > + }); > + > + me.callParent(); > + }, > +}); > + _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel