and make it configurable in the tree browser settings.
this makes now use of the new sorting order and the more efficient
'getFilterFn' method of the viewSelector

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
not sure if we should make each option seperate, so either
separate options for tag/pool view

or separate options for nodes/storages (sdn maybe too?)
or both (that would be 4 new options)

 www/manager6/UIOptions.js               |  1 +
 www/manager6/form/ViewSelector.js       | 16 ++++++++++++++--
 www/manager6/tree/ResourceTree.js       |  2 +-
 www/manager6/window/TreeSettingsEdit.js | 13 +++++++++++++
 4 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/www/manager6/UIOptions.js b/www/manager6/UIOptions.js
index 057c8f03..97b689b0 100644
--- a/www/manager6/UIOptions.js
+++ b/www/manager6/UIOptions.js
@@ -93,6 +93,7 @@ Ext.define('PVE.UIOptions', {
            'sort-field': 'vmid',
            'group-templates': true,
            'group-guest-types': true,
+           'more-types': true,
        };
 
        return browserValues?.[key] ?? defaults[key];
diff --git a/www/manager6/form/ViewSelector.js 
b/www/manager6/form/ViewSelector.js
index f5de5c8e..8c656fc8 100644
--- a/www/manager6/form/ViewSelector.js
+++ b/www/manager6/form/ViewSelector.js
@@ -30,12 +30,24 @@ Ext.define('PVE.form.ViewSelector', {
                text: gettext('Pool View'),
                groups: ['pool'],
                // Pool View only lists VMs and Containers
-               getFilterFn: () => ({ data }) => data.type === 'qemu' || 
data.type === 'lxc' || data.type === 'pool',
+               getFilterFn: function() {
+                   let types = ['qemu', 'lxc', 'pool'];
+                   if (PVE.UIOptions.getTreeSortingValue('more-types')) {
+                       types.push('node', 'storage');
+                   }
+                   return ({data}) => types.indexOf(data.type) !== -1;
+               },
            },
            tags: {
                text: gettext('Tag View'),
                groups: ['tag'],
-               getFilterFn: () => ({ data }) => data.type === 'qemu' || 
data.type === 'lxc',
+               getFilterFn: function() {
+                   let types = ['qemu', 'lxc'];
+                   if (PVE.UIOptions.getTreeSortingValue('more-types')) {
+                       types.push('node', 'storage');
+                   }
+                   return ({data}) => types.indexOf(data.type) !== -1;
+               },
                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 312f958f..0440d9c2 100644
--- a/www/manager6/tree/ResourceTree.js
+++ b/www/manager6/tree/ResourceTree.js
@@ -242,7 +242,7 @@ Ext.define('PVE.tree.ResourceTree', {
     saveSortingOptions: function() {
        let me = this;
        let changed = false;
-       for (const key of ['sort-field', 'group-templates', 
'group-guest-types']) {
+       for (const key of ['sort-field', 'group-templates', 
'group-guest-types', 'more-types']) {
            let newValue = PVE.UIOptions.getTreeSortingValue(key);
            if (me[key] !== newValue) {
                me[key] = newValue;
diff --git a/www/manager6/window/TreeSettingsEdit.js 
b/www/manager6/window/TreeSettingsEdit.js
index b48415bc..ef2eda4a 100644
--- a/www/manager6/window/TreeSettingsEdit.js
+++ b/www/manager6/window/TreeSettingsEdit.js
@@ -55,6 +55,19 @@ Ext.define('PVE.window.TreeSettingsEdit', {
                    value: '__default__',
                    deleteEmpty: false,
                },
+               {
+                   xtype: 'proxmoxKVComboBox',
+                   name: 'more-types',
+                   fieldLabel: gettext('Show Nodes/Storages in Pool/Tag View'),
+                   comboItems: [
+                       ['__default__', `${Proxmox.Utils.defaultText} 
(${gettext("Yes")})`],
+                       [1, gettext('Yes')],
+                       [0, gettext('No')],
+                   ],
+                   defaultValue: '__default__',
+                   value: '__default__',
+                   deleteEmpty: false,
+               },
                {
                    xtype: 'displayfield',
                    userCls: 'pmx-hint',
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to