[pve-devel] [PATCH manager] ui: backup job overview: add filter field

Aaron Lauterer a.lauterer at proxmox.com
Thu Sep 19 17:36:02 CEST 2024


gave this a quick test spin and if I clear my search, the other backup 
jobs that did not match don't show up anymore. So resetting seems to be 
somewhat broken.


On a more general level, the question is, if this approach will be 
sufficient or if we don't want something in the direction of "show me 
all backup jobs that cover this specific VMID". Which will need a bit 
more logic. Then the question is, do we want to handle that in the 
backend, where we already have it, or do we handle it purely in the 
frontend where we will need to replicate the logic.

For example, all VMIDs on a node. all VMIDs except the selected. VMIDs 
in resource pools, ...

On  2024-09-19  16:30, Dominik Csapak wrote:
> so that users can easily search their jobs for comments, VMID and pool
> names, in case there are many backup jobs.
> 
> This partially addresses #5721, since one can search for vmid when they
> are selected directly, but not when inside a pool. Still should be a
> useful addition for users with many backup jobs.
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>   www/manager6/dc/Backup.js | 39 +++++++++++++++++++++++++++++++++++++++
>   1 file changed, 39 insertions(+)
> 
> diff --git a/www/manager6/dc/Backup.js b/www/manager6/dc/Backup.js
> index 381402ca..a96eb5bf 100644
> --- a/www/manager6/dc/Backup.js
> +++ b/www/manager6/dc/Backup.js
> @@ -780,6 +780,45 @@ Ext.define('PVE.dc.BackupView', {
>   		    '-',
>   		    run_btn,
>   		    '->',
> +		    {
> +			xtype: 'textfield',
> +			fieldLabel: gettext('Filter'),
> +			autoEl: {
> +			    tag: 'div',
> +			    'data-qtip': gettext('Filters by Comment, VMID or Pool name'),
> +			},
> +			triggers: {
> +			    clear: {
> +				cls: 'pmx-clear-trigger',
> +				weight: -1,
> +				hidden: true,
> +				handler: function() {
> +				    this.setValue('');
> +				    this.getTriggers().clear.setVisible(false);
> +				},
> +			    },
> +			},
> +			labelAlign: 'right',
> +			listeners: {
> +			    change: {
> +				fn: function(search, val) {
> +				    search.getTriggers().clear.setVisible(!!val);
> +				    store.clearFilter();
> +				    store.filterBy((record) => {
> +					let found = false;
> +					for (const field of ['comment', 'vmid', 'pool']) {
> +					    if (record.data[field]?.toString().includes(val)) {
> +						found = true;
> +						break;
> +					    }
> +					}
> +					return found;
> +				    });
> +				},
> +				buffer: 250,
> +			    },
> +			},
> +		    },
>   		    noBackupJobInfoButton,
>   		    '-',
>   		    {





More information about the pve-devel mailing list