Am 19.06.23 um 16:13 schrieb Dominik Csapak:
> diff --git a/www/manager6/window/PCIMapEdit.js 
> b/www/manager6/window/PCIMapEdit.js
> index 516678e0..cd2dbfbe 100644
> --- a/www/manager6/window/PCIMapEdit.js
> +++ b/www/manager6/window/PCIMapEdit.js
> @@ -70,6 +70,44 @@ Ext.define('PVE.window.PCIMapEditWindow', {
>           me.lookup('iommu_warning').setVisible(
>               records.every((val) => val.data.iommugroup === -1),
>           );
> +
> +         let value = me.lookup('pciselector').getValue();
> +         me.checkIsolated(value);
> +     },
> +
> +     checkIsolated: function(value) {
> +         let me = this;
> +
> +         let isIsolated = function(entry) {
> +             let isolated = true;
> +             let parsed = PVE.Parser.parsePropertyString(entry);
> +             parsed.iommugroup = parseInt(parsed.iommugroup, 10);

Nit: is there a simpler way to get the selected elements directly from
the store instead of going via getValue() above and then do the parsing
here?

> +             if (!parsed.iommugroup) {
> +                 return isolated;
> +             }
> +             me.lookup('pciselector').getStore().each(({ data }) => {

Nit: Feel a bit out of place to do the lookup here every time. Maybe
pass this in the store data as an argument to the function already?

> +                 let isSubDevice = data.id.startsWith(parsed.path);
> +                 if (data.iommugroup === parsed.iommugroup && data.id !== 
> parsed.path && !isSubDevice) {
> +                     isolated = false;
> +                     return false;
> +                 }
> +                 return true;
> +             });
> +             return isolated;
> +         };
> +
> +         let showWarning = false;
> +         if (Ext.isArray(value)) {
> +             for (const entry of value) {
> +                 if (!isIsolated(entry)) {
> +                     showWarning = true;
> +                     break;
> +                 }
> +             }
> +         } else {
> +             showWarning = isIsolated(value);
> +         }
> +         me.lookup('group_warning').setVisible(showWarning);
>       },
>  

Not in this patch, but the warning is

> The selected Device is not in a seperate IOMMU group, make sure this is 
> intended.

which has two typos:
s/Device/device/
s/seperate/separate/
and I'd use s/The/A/ because multiple ones can be selected.

And the warnings could/should use gettext().


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to