[pve-devel] [PATCH manager 2/3] ui: view selector: prepare filterfn to be more efficient
Dominik Csapak
d.csapak at proxmox.com
Tue Nov 12 12:45:05 CET 2024
instead of just using the filterfn directly, return a function from
`getFilterFn`. This way, when we want to filter different things
depending on e.g. local storage values, we don't have to do that for
every element, but only once and return the finished filterFn.
while at it, rename 'filterfn' to camel case 'filterFn'.
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
www/manager6/form/ViewSelector.js | 4 ++--
www/manager6/tree/ResourceTree.js | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/www/manager6/form/ViewSelector.js b/www/manager6/form/ViewSelector.js
index ee16c227..f5de5c8e 100644
--- a/www/manager6/form/ViewSelector.js
+++ b/www/manager6/form/ViewSelector.js
@@ -30,12 +30,12 @@ Ext.define('PVE.form.ViewSelector', {
text: gettext('Pool View'),
groups: ['pool'],
// Pool View only lists VMs and Containers
- filterfn: ({ data }) => data.type === 'qemu' || data.type === 'lxc' || data.type === 'pool',
+ getFilterFn: () => ({ data }) => data.type === 'qemu' || data.type === 'lxc' || data.type === 'pool',
},
tags: {
text: gettext('Tag View'),
groups: ['tag'],
- filterfn: ({ data }) => data.type === 'qemu' || data.type === 'lxc',
+ getFilterFn: () => ({ data }) => data.type === 'qemu' || data.type === 'lxc',
groupRenderer: function(info) {
let tag = PVE.Utils.renderTags(info.tag, PVE.UIOptions.tagOverrides);
return `<span class="proxmox-tags-full">${tag}</span>`;
diff --git a/www/manager6/tree/ResourceTree.js b/www/manager6/tree/ResourceTree.js
index 640ebbf9..312f958f 100644
--- a/www/manager6/tree/ResourceTree.js
+++ b/www/manager6/tree/ResourceTree.js
@@ -327,7 +327,7 @@ Ext.define('PVE.tree.ResourceTree', {
// also check for name for when the tree is sorted by name
let moveCheckAttrs = groups.concat(['node', 'template', 'name']);
- let filterfn = me.viewFilter.filterfn;
+ let filterFn = me.viewFilter.getFilterFn ? me.viewFilter.getFilterFn() : Ext.identityFn;
let reselect = false; // for disappeared nodes
let index = pdata.dataIndex;
@@ -399,7 +399,7 @@ Ext.define('PVE.tree.ResourceTree', {
if (olditem) {
return;
}
- if (filterfn && !filterfn(item)) {
+ if (filterFn && !filterFn(item)) {
return;
}
let info = Ext.apply({ leaf: true }, item.data);
--
2.39.5
More information about the pve-devel
mailing list