use 'gridfilter' plugin to filter by vmid (returned from the api), but leave the 'search' textbox (so that the user can still search for e.g. a year)
Signed-off-by: Dominik Csapak <d.csa...@proxmox.com> --- www/manager6/grid/BackupView.js | 54 +++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/www/manager6/grid/BackupView.js b/www/manager6/grid/BackupView.js index 2f814d3f..8ad7a367 100644 --- a/www/manager6/grid/BackupView.js +++ b/www/manager6/grid/BackupView.js @@ -8,6 +8,8 @@ Ext.define('PVE.grid.BackupView', { stateful: true, stateId: 'grid-guest-backup', + plugins: 'gridfilters', + initComponent : function() { var me = this; @@ -26,38 +28,45 @@ Ext.define('PVE.grid.BackupView', { throw "no VM type specified"; } - var vmtypeFilter; + var vmtypeFilterFn; if (vmtype === 'lxc' || vmtype === 'openvz') { - vmtypeFilter = function(item) { + vmtypeFilterFn = function(item) { return PVE.Utils.volume_is_lxc_backup(item.data.volid, item.data.format); }; } else if (vmtype === 'qemu') { - vmtypeFilter = function(item) { + vmtypeFilterFn = function(item) { return PVE.Utils.volume_is_qemu_backup(item.data.volid, item.data.format); }; } else { throw "unsupported VM type '" + vmtype + "'"; } - var searchFilter = { + let searchfilter = new Ext.util.Filter({ property: 'volid', - // on initial store display only our vmid backups - // surround with minus sign to prevent the 2016 VMID bug - value: vmtype + '-' + vmid + '-', + value: '', anyMatch: true, - caseSensitive: false - }; + caseSensitive: false, + }); me.store = Ext.create('Ext.data.Store', { + statefulFilters: false, model: 'pve-storage-content', - sorters: { - property: 'volid', - order: 'DESC' + sorters: { + property: 'volid', + order: 'DESC' }, filters: [ - vmtypeFilter, - searchFilter - ] + { + id: 'vmtype', + filterFn: vmtypeFilterFn + }, + searchfilter, + ] + }); + + me.store.getFilters().on('endupdate', () => { + // gridfilter plugin sets this to true but we do not want it + me.store.setStatefulFilters(false); }); var reload = Ext.Function.createBuffered(function() { @@ -96,16 +105,11 @@ Ext.define('PVE.grid.BackupView', { labelWidth: 50, labelAlign: 'right', enableKeyEvents: true, - value: searchFilter.value, listeners: { buffer: 500, keyup: function(field) { - me.store.clearFilter(true); - searchFilter.value = field.getValue(); - me.store.filter([ - vmtypeFilter, - searchFilter - ]); + searchfilter.setValue(field.getValue()); + me.store.addFilter(searchfilter); } } }); @@ -208,6 +212,12 @@ Ext.define('PVE.grid.BackupView', { { header: 'VMID', width: 100, + filter: { + type: 'number', + value: { + eq: vmid + }, + }, dataIndex: 'vmid' }, { -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel