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]> --- new in v2 Couldn't find a way to make this work with stateful: true... Not using Ext.create and only passing along the Object with the properties for the grouper doesn't seem to help either. www/manager6/storage/BackupView.js | 24 ++++++++++++++++++++++-- www/manager6/storage/ContentView.js | 1 + 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/www/manager6/storage/BackupView.js b/www/manager6/storage/BackupView.js index 2669d2ca..ad377de6 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,22 @@ 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; + if (!vmid) { + return 'other'; + } + if (name.startsWith('vzdump-lxc-')) { + return 'CT/' + vmid; + } else if (name.startsWith('vzdump-qemu-')) { + return 'VM/' + vmid; + } + return 'other'; + }, + }); + me.callParent(); }, }); diff --git a/www/manager6/storage/ContentView.js b/www/manager6/storage/ContentView.js index 0f1bbc0c..e563d3a3 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
