[pve-devel] [PATCH manager] ui: resource mappings: fix editing of mapping for non first node

Fiona Ebner f.ebner at proxmox.com
Wed Jul 24 11:44:39 CEST 2024


Am 26.04.24 um 09:17 schrieb Dominik Csapak:
> when editing the pci mapping, we set the nodename of the pciselector
> to the selected node. At the same time we disable and hide the node
> selector, but it still changes it's value to the 'first' node
> (alphabetically sorted) and that triggers a change event.
> 

It's the first node that's not in the disallowedNodes AFAICT.

> To prevent that we accidentally set the node of the pciselector
> too, we need to check here if the field is disabled.
> 

I wondered why the USB mappings don't suffer the same issue though. The
nodeChange() callback gets called with the correct value when editing
the mapping for a specific node, even though the node selector
definition and setting of disallowedNodes is the same as for the PCI
mappings.

Looking at Javascript backtraces, it seems like there might be some kind
of race going on (whether the me.getStore().load() for
PVE.form.NodeSelector finishes early or not), but not clue why it
happens for one, but not the other.

That said, adding a similar condition for the USB mappings would still
be good IMHO.

> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>

Reviewed-by: Fiona Ebner <f.ebner at proxmox.com>

> ---
>  www/manager6/window/PCIMapEdit.js | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/www/manager6/window/PCIMapEdit.js b/www/manager6/window/PCIMapEdit.js
> index d43f04eb..faf58255 100644
> --- a/www/manager6/window/PCIMapEdit.js
> +++ b/www/manager6/window/PCIMapEdit.js
> @@ -126,8 +126,10 @@ Ext.define('PVE.window.PCIMapEditWindow', {
>  	    this.lookup('pciselector').setMdev(value);
>  	},
>  
> -	nodeChange: function(_field, value) {
> -	    this.lookup('pciselector').setNodename(value);
> +	nodeChange: function(field, value) {
> +	    if (!field.isDisabled()) {
> +		this.lookup('pciselector').setNodename(value);
> +	    }
>  	},
>  
>  	pciChange: function(_field, value) {




More information about the pve-devel mailing list