It was necessary to make the component not stateful, because of an ExtJS bug where groupFn is not being preserved when the state is restored, see: https://forum.sencha.com/forum/showthread.php?469145-Uncaught-TypeError-me-_groupFn-is-not-a-function
Signed-off-by: Fabian Ebner <[email protected]> --- www/manager6/storage/BackupView.js | 26 ++++++++++++++++++++++++-- www/manager6/storage/ContentView.js | 1 + 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/www/manager6/storage/BackupView.js b/www/manager6/storage/BackupView.js index 2669d2ca..9ced7947 100644 --- a/www/manager6/storage/BackupView.js +++ b/www/manager6/storage/BackupView.js @@ -3,8 +3,12 @@ Ext.define('PVE.storage.BackupView', { alias: 'widget.pveStorageBackupView', - stateful: true, - stateId: 'grid-storage-content-backup', + features: [ + { + ftype: 'grouping', + groupHeaderTpl: '{name} ({rows.length} Backup{[values.rows.length > 1 ? "s" : ""]})', + }, + ], initComponent: function() { var me = this; @@ -69,6 +73,24 @@ Ext.define('PVE.storage.BackupView', { }, ]; + me.grouper = Ext.create('Ext.util.Grouper', { + groupFn: function(val) { + let name = val.data.text; + let vmid = val.data.vmid; + let format = val.data.format; + + if (!vmid) { + return 'other'; + } + if (name.startsWith('vzdump-lxc-') || format === "pbs-ct") { + return 'CT/' + vmid; + } else if (name.startsWith('vzdump-qemu-') || format === "pbs-vm") { + return 'VM/' + vmid; + } + return 'other'; + }, + }); + me.callParent(); }, }); diff --git a/www/manager6/storage/ContentView.js b/www/manager6/storage/ContentView.js index 38dd5cab..1cd13c0e 100644 --- a/www/manager6/storage/ContentView.js +++ b/www/manager6/storage/ContentView.js @@ -232,6 +232,7 @@ Ext.define('PVE.storage.ContentView', { var baseurl = "/nodes/" + nodename + "/storage/" + storage + "/content"; var store = me.store = Ext.create('Ext.data.Store', { model: 'pve-storage-content', + grouper: me.grouper, proxy: { type: 'proxmox', url: '/api2/json' + baseurl, -- 2.20.1 _______________________________________________ pve-devel mailing list [email protected] https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
