[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