From: Stoiko Ivanov <s.ivanov@proxmox.com>
To: Dominik Csapak <d.csapak@proxmox.com>
Cc: pmg-devel@lists.proxmox.com
Subject: Re: [pmg-devel] [PATCH widget-toolkit] object grid: fix onlineHelp setting from editorConfig for row editors
Date: Tue, 25 Feb 2025 16:12:05 +0100 [thread overview]
Message-ID: <20250225161205.2e3df05d@rosa.proxmox.com> (raw)
In-Reply-To: <20250225141652.4166377-1-d.csapak@proxmox.com>
Thanks for finding this so fast!
It fixes the vanished help-buttons throughout pmg-gui
(introduced in 573a6e8 ("add onlineHelp properties to all edit windows"))
did not check other users of the ObjectGrid - but from a look through
pmg-gui and the changes the patch looks good - so FWIW:
Reviewed-By: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-By: Stoiko Ivanov <s.ivanov@proxmox.com>
On Tue, 25 Feb 2025 15:16:52 +0100
Dominik Csapak <d.csapak@proxmox.com> wrote:
> In our row editors helpers, we unconditionally set onlineHelp from
> 'opts.onlineHelp', even if it's undefined.
>
> Later we use 'Ext.apply' to set first the editorConfig defaults, then
> the 'rowdef.editor' settings. In javascript, the objects
>
> {} and
> { foo: undefined }
>
> are not the same, so Ext.apply overwrites the default from editorConfig
> with that from the row definition, also for undefined.
>
> This means if we have a default onlineHelp in editorConfig and none in
> the add_*_row options, we would not show it.
>
> To fix it, check if 'opts.onlineHelp' is truthy before setting it in
> the row definition. This should not happen for other options used
> from the row helper options, since those are nested
> (Ext.apply does not work recursively)
>
> This fixes a regression in pmg-gui, where we set a default onlineHelp
> for e.g. the Mail Proxy Options which would not show up anymore.
>
> Note: PMG is the only product where we used this pattern, so this
> was not visible anywhere in PVE or PBS.
>
> Fixes: 7d16f8b (object grid: allow to pass online help to row editors)
> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
> ---
> src/grid/ObjectGrid.js | 20 +++++++++++++++-----
> 1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/src/grid/ObjectGrid.js b/src/grid/ObjectGrid.js
> index fa5fb92..2ed1dd2 100644
> --- a/src/grid/ObjectGrid.js
> +++ b/src/grid/ObjectGrid.js
> @@ -67,7 +67,6 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> editor: {
> xtype: 'proxmoxWindowEdit',
> subject: text,
> - onlineHelp: opts.onlineHelp,
> fieldDefaults: {
> labelWidth: opts.labelWidth || 100,
> },
> @@ -84,6 +83,9 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> },
> },
> };
> + if (opts.onlineHelp) {
> + me.rows[name].editor.onlineHelp = opts.onlineHelp;
> + }
> },
>
> add_text_row: function(name, text, opts) {
> @@ -100,7 +102,6 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> editor: {
> xtype: 'proxmoxWindowEdit',
> subject: text,
> - onlineHelp: opts.onlineHelp,
> fieldDefaults: {
> labelWidth: opts.labelWidth || 100,
> },
> @@ -115,6 +116,9 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> },
> },
> };
> + if (opts.onlineHelp) {
> + me.rows[name].editor.onlineHelp = opts.onlineHelp;
> + }
> },
>
> add_boolean_row: function(name, text, opts) {
> @@ -131,7 +135,6 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> editor: {
> xtype: 'proxmoxWindowEdit',
> subject: text,
> - onlineHelp: opts.onlineHelp,
> fieldDefaults: {
> labelWidth: opts.labelWidth || 100,
> },
> @@ -147,6 +150,9 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> },
> },
> };
> + if (opts.onlineHelp) {
> + me.rows[name].editor.onlineHelp = opts.onlineHelp;
> + }
> },
>
> add_integer_row: function(name, text, opts) {
> @@ -163,7 +169,6 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> editor: {
> xtype: 'proxmoxWindowEdit',
> subject: text,
> - onlineHelp: opts.onlineHelp,
> fieldDefaults: {
> labelWidth: opts.labelWidth || 100,
> },
> @@ -180,6 +185,9 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> },
> },
> };
> + if (opts.onlineHelp) {
> + me.rows[name].editor.onlineHelp = opts.onlineHelp;
> + }
> },
>
> // adds a row that allows editing in a full TextArea that transparently de/encodes as Base64
> @@ -198,7 +206,6 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> editor: {
> xtype: 'proxmoxWindowEdit',
> subject: text,
> - onlineHelp: opts.onlineHelp,
> fieldDefaults: {
> labelWidth: opts.labelWidth || 600,
> },
> @@ -209,6 +216,9 @@ Ext.define('Proxmox.grid.ObjectGrid', {
> },
> },
> };
> + if (opts.onlineHelp) {
> + me.rows[name].editor.onlineHelp = opts.onlineHelp;
> + }
> },
>
> editorConfig: {}, // default config passed to editor
_______________________________________________
pmg-devel mailing list
pmg-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pmg-devel
next prev parent reply other threads:[~2025-02-25 15:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-25 14:16 Dominik Csapak
2025-02-25 15:12 ` Stoiko Ivanov [this message]
2025-02-25 17:12 ` [pmg-devel] applied: " Thomas Lamprecht
2025-02-26 7:30 ` Dominik Csapak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250225161205.2e3df05d@rosa.proxmox.com \
--to=s.ivanov@proxmox.com \
--cc=d.csapak@proxmox.com \
--cc=pmg-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal