On 1/16/24 15:30, Stefan Hanreich wrote:
> With the current implementation using queryDelay, this means that the
> change event for the input never completes. This in turn leads to
> the input panel never changing its dirty status. By using the
> beforequery event we can simply cancel the query without resorting to
> the queryDelay hack.
> 
> Reported-By: Mira Limbeck <m.limb...@proxmox.com>
> Signed-off-by: Stefan Hanreich <s.hanre...@proxmox.com>
> ---
>  www/manager6/form/IPRefSelector.js | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/www/manager6/form/IPRefSelector.js 
> b/www/manager6/form/IPRefSelector.js
> index 7e5eea63a..d41cde5f5 100644
> --- a/www/manager6/form/IPRefSelector.js
> +++ b/www/manager6/form/IPRefSelector.js
> @@ -56,15 +56,6 @@ Ext.define('PVE.form.IPRefSelector', {
>           },
>       });
>  
> -     var disable_query_for_ips = function(f, value) {
> -         if (value === null ||
> -             value.match(/^\d/)) { // IP address starts with \d
> -             f.queryDelay = 9999999999; // hack: disable with long delay
> -         } else {
> -             f.queryDelay = 10;
> -         }
> -     };
> -
>       var columns = [];
>  
>       if (!me.ref_type) {
> @@ -109,7 +100,9 @@ Ext.define('PVE.form.IPRefSelector', {
>           },
>       });
>  
> -     me.on('change', disable_query_for_ips);
> +     me.on('beforequery', function(queryPlan) {
> +         return !(queryPlan.query === null || queryPlan.query.match(/^\d/));
> +     });
>  
>          me.callParent();
>      },

Tested this with ~900 ipsets and ~1000 aliases.
Did not notice any worse delay or issues with this patch applied.

Tested-by: Mira Limbeck <m.limb...@proxmox.com>
Reviewed-by: Mira Limbeck <m.limb...@proxmox.com>


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

Reply via email to