[pve-devel] [PATCH manager v2] ui: resource tree: add collapse/expand all button
Dominik Csapak
d.csapak at proxmox.com
Tue Nov 19 10:49:33 CET 2024
adds two buttons to the tree: expand all and collapse all
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v1:
* use two buttons (negates the need for all the event handling and checking)
* use plain plus/minus icons -> i have no real preference here either,
but the plain icons look a bit weird here IMHO
www/manager6/Workspace.js | 20 ++++++++++++++++++++
www/manager6/tree/ResourceTree.js | 12 ++++++++++++
2 files changed, 32 insertions(+)
diff --git a/www/manager6/Workspace.js b/www/manager6/Workspace.js
index 922e01df..614e85c9 100644
--- a/www/manager6/Workspace.js
+++ b/www/manager6/Workspace.js
@@ -470,6 +470,26 @@ Ext.define('PVE.StdWorkspace', {
padding: '0 0 5 0',
items: [
selview,
+ {
+ xtype: 'button',
+ cls: 'x-btn-default-toolbar-small',
+ tooltip: gettext('Expand Tree'),
+ iconCls: 'fa fa-fw fa-plus x-btn-icon-el-default-toolbar-small',
+ handler: () => {
+ let rt = me.down('pveResourceTree');
+ rt.expandAll();
+ },
+ },
+ {
+ xtype: 'button',
+ cls: 'x-btn-default-toolbar-small',
+ tooltip: gettext('Collapse Tree'),
+ iconCls: 'fa fa-fw fa-minus x-btn-icon-el-default-toolbar-small',
+ handler: () => {
+ let rt = me.down('pveResourceTree');
+ rt.collapseAll();
+ },
+ },
{
xtype: 'button',
cls: 'x-btn-default-toolbar-small',
diff --git a/www/manager6/tree/ResourceTree.js b/www/manager6/tree/ResourceTree.js
index 8b7c2521..65ed5340 100644
--- a/www/manager6/tree/ResourceTree.js
+++ b/www/manager6/tree/ResourceTree.js
@@ -255,6 +255,18 @@ Ext.define('PVE.tree.ResourceTree', {
return changed;
},
+ collapseAll: function() {
+ let me = this;
+ let root = me.store.getRootNode();
+ root.collapseChildren(true);
+ },
+
+ expandAll: function() {
+ let me = this;
+ let root = me.store.getRootNode();
+ root.expandChildren(true);
+ },
+
initComponent: function() {
let me = this;
me.saveSortingOptions();
--
2.39.5
More information about the pve-devel
mailing list