all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: Nicolas Frey <n.frey@proxmox.com>, pve-devel@lists.proxmox.com
Subject: Re: [PATCH pve-manager v2 4/4] partially fix #7801: ui: hardware view: warn about problematic virtio versions
Date: Wed, 26 Aug 2026 16:09:10 +0200	[thread overview]
Message-ID: <eb7ee2dc-e584-48e9-84c4-43f053f324ca@proxmox.com> (raw)
In-Reply-To: <DKYX0EHWXD0U.2QHB8OLXXJTS9@proxmox.com>

Am 26.08.26 um 3:37 PM schrieb Nicolas Frey:
> On Wed Aug 26, 2026 at 1:44 PM CEST, Fiona Ebner wrote:
>> Am 26.08.26 um 9:49 AM schrieb Nicolas Frey:
>>> based on whether the ostype is windows or not. extends the
>>> `editorFactory` to allow extraOptions to be a callback to allow for lazy
>>> evaluation. this is needed as 'ostype' is not yet instantiated when
>>> eagerly evaluating.
>>>
>>> Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=7801
>>> Signed-off-by: Nicolas Frey <n.frey@proxmox.com>
>>> ---
>>> changes since v1:
>>> * actually lazily evaluate the ostype by putting it in
>>>   the function body that gets returned (i.e. the factory)
>>> * add missing warnVirtio to commonOpts
>>>
>>>  www/manager6/qemu/HardwareView.js | 8 +++++---
>>>  1 file changed, 5 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/www/manager6/qemu/HardwareView.js b/www/manager6/qemu/HardwareView.js
>>> index e6c02299..9e900746 100644
>>> --- a/www/manager6/qemu/HardwareView.js
>>> +++ b/www/manager6/qemu/HardwareView.js
>>> @@ -436,6 +436,7 @@ Ext.define('PVE.qemu.HardwareView', {
>>>                  listeners: {
>>>                      destroy: () => me.reload(),
>>>                  },
>>> +                warnVirtio: PVE.Utils.is_windows(me.getObjectValue('ostype')),
>>
>> Seems a bit out of place in the commonOpts. Can't we do this more
>> locally in the definition below? Might need splitting out like the
>> efidisk_menuitem?
>>
> 
> doesn't efidisk_menuitem just apply to the "Add" dropdown menu?

Hmm, right.

> the commonOpts
> are IMO not ideal, but there is no option to pass in any additional options:
> 
> ```
> if (Ext.isString(editor)) {
>     Ext.create(editor, commonOpts);
> }
> ```
> 
> where the `CDEdit` editor is determined (in `run_editor`) like so:
> 
> ```
> if (rowdef.isOnStorageBus) {
>     let value = me.getObjectValue(rec.data.key, '', true);
>     if (isCloudInitKey(value)) {
>         return;
>     } else if (value.match(/media=cdrom/)) {
>         editor = 'PVE.qemu.CDEdit';

Can we define an instance with the extra option up-front and then assign
that one instead of the string here?

>     } else if (!diskCap) {
>         return;
>     }
> }
> ```
> 
> I'd have to rewrite a bunch of stuff here to allow for that and I'm not
> sure it's worth the hassle here. what do you think?
> 
>>>              };
>>>
>>>              if (Ext.isString(editor)) {
>>> @@ -805,7 +806,6 @@ Ext.define('PVE.qemu.HardwareView', {
>>>          };
>>>
>>>          let editorFactory = (classPath, extraOptions) => {
>>> -            extraOptions = extraOptions || {};
>>>              return () =>
>>>                  Ext.create(`PVE.qemu.${classPath}`, {
>>>                      autoShow: true,
>>> @@ -816,7 +816,7 @@ Ext.define('PVE.qemu.HardwareView', {
>>>                      },
>>>                      isAdd: true,
>>>                      isCreate: true,
>>> -                    ...extraOptions,
>>> +                    ...(Ext.isFunction(extraOptions) ? extraOptions() : extraOptions || {}),
>>
>> This is rather hacky too.
>>
> 
> do you mean the way it's written with a ternary or generally the lazy evaluation?
> 

I meant the overloading of the parameter to either be a dictionary or a
function. But to be fair, it is JavaScript, so nothing unheard of.

>>>                  });
>>>          };
>>>
>>> @@ -847,7 +847,9 @@ Ext.define('PVE.qemu.HardwareView', {
>>>                                  text: gettext('CD/DVD Drive'),
>>>                                  iconCls: 'pve-itype-icon-cdrom',
>>>                                  disabled: !caps.vms['VM.Config.CDROM'],
>>> -                                handler: editorFactory('CDEdit'),
>>> +                                handler: editorFactory('CDEdit', () => ({
>>> +                                    warnVirtio: PVE.Utils.is_windows(me.getObjectValue('ostype')),
>>> +                                })),
>>>                              },
>>>                              {
>>>                                  text: gettext('Network Device'),
>>> --
>>> 2.47.3
>>>
>>>
>>>





  reply	other threads:[~2026-08-26 14:09 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-26  7:49 [PATCH manager v2 0/4] fix #7801: ui: warn about problematic virtio versions on iso select Nicolas Frey
2026-08-26  7:49 ` [PATCH pve-manager v2 1/4] ui: iso selector: add option to warn about virtio versions with issues Nicolas Frey
2026-08-26 11:44   ` Fiona Ebner
2026-08-26 13:28     ` Nicolas Frey
2026-08-26  7:49 ` [PATCH pve-manager v2 2/4] ui: cd edit: add `warnVirtio` option to pass to iso selector Nicolas Frey
2026-08-26  7:49 ` [PATCH pve-manager v2 3/4] partially fix #7801: ui: ospanel: warn about problematic virtio versions Nicolas Frey
2026-08-26  7:49 ` [PATCH pve-manager v2 4/4] partially fix #7801: ui: hardware view: " Nicolas Frey
2026-08-26 11:44   ` Fiona Ebner
2026-08-26 13:38     ` Nicolas Frey
2026-08-26 14:09       ` Fiona Ebner [this message]
2026-08-27  6:14 ` [PATCH manager v2 0/4] fix #7801: ui: warn about problematic virtio versions on iso select Dominik Csapak
2026-08-27  6:57   ` Nicolas Frey

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=eb7ee2dc-e584-48e9-84c4-43f053f324ca@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=n.frey@proxmox.com \
    --cc=pve-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal