[pve-devel] [PATCH manager 2/2] gui: BackupView: improve filtering of backups
Dominik Csapak
d.csapak at proxmox.com
Fri Feb 21 11:02:11 CET 2020
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.csapak at 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
More information about the pve-devel
mailing list