public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Elias Huhsovitz <e.huhsovitz@proxmox.com>
To: pve-devel@lists.proxmox.com
Cc: Elias Huhsovitz <e.huhsovitz@proxmox.com>
Subject: [PATCH manager 2/2] ui: tree: reduce reduce usage of `let` keyword
Date: Tue, 18 Aug 2026 10:31:10 +0200	[thread overview]
Message-ID: <20260818083110.15786-3-e.huhsovitz@proxmox.com> (raw)
In-Reply-To: <20260818083110.15786-1-e.huhsovitz@proxmox.com>

Replace `let` with `const` the for varaibles that are not re-assigned.

Signed-off-by: Elias Huhsovitz <e.huhsovitz@proxmox.com>
---
 www/manager6/tree/ResourceTree.js | 134 +++++++++++++++---------------
 1 file changed, 67 insertions(+), 67 deletions(-)

diff --git a/www/manager6/tree/ResourceTree.js b/www/manager6/tree/ResourceTree.js
index a7723095..93d2a85b 100644
--- a/www/manager6/tree/ResourceTree.js
+++ b/www/manager6/tree/ResourceTree.js
@@ -52,15 +52,15 @@ Ext.define('PVE.tree.ResourceTree', {
             flex: 1,
             dataIndex: 'text',
             renderer: function (val, meta, rec) {
-                let info = rec.data;
+                const info = rec.data;
 
                 let text = info.text;
                 let status = '';
                 if (info.type === 'storage') {
-                    let usage = info.disk / info.maxdisk;
+                    const usage = info.disk / info.maxdisk;
                     if (usage >= 0.0 && usage <= 1.0) {
-                        let barHeight = (usage * 100).toFixed(0);
-                        let remainingHeight = (100 - barHeight).toFixed(0);
+                        const barHeight = (usage * 100).toFixed(0);
+                        const remainingHeight = (100 - barHeight).toFixed(0);
                         status = '<div class="usage-wrapper">';
                         status += `<div class="usage-negative" style="height: ${remainingHeight}%"></div>`;
                         status += `<div class="usage" style="height: ${barHeight}%"></div>`;
@@ -112,16 +112,16 @@ Ext.define('PVE.tree.ResourceTree', {
 
     // private
     nodeSortFn: function (node1, node2) {
-        let me = this;
-        let n1 = node1.data,
+        const me = this;
+        const n1 = node1.data,
             n2 = node2.data;
 
         if (!n1.groupbyid === !n2.groupbyid) {
-            let n1IsGuest = n1.type === 'qemu' || n1.type === 'lxc';
-            let n2IsGuest = n2.type === 'qemu' || n2.type === 'lxc';
+            const n1IsGuest = n1.type === 'qemu' || n1.type === 'lxc';
+            const n2IsGuest = n2.type === 'qemu' || n2.type === 'lxc';
             if (me['group-guest-types'] || !n1IsGuest || !n2IsGuest) {
                 // first sort (group) by type
-                let res = me.getTypeOrder(n1.type) - me.getTypeOrder(n2.type);
+                const res = me.getTypeOrder(n1.type) - me.getTypeOrder(n2.type);
                 if (res !== 0) {
                     return res;
                 }
@@ -155,15 +155,15 @@ Ext.define('PVE.tree.ResourceTree', {
 
     // private: fast binary search
     findInsertIndex: function (node, child, start, end) {
-        let me = this;
+        const me = this;
 
-        let diff = end - start;
+        const diff = end - start;
         if (diff <= 0) {
             return start;
         }
-        let mid = start + (diff >> 1);
+        const mid = start + (diff >> 1);
 
-        let res = me.nodeSortFn(child, node.childNodes[mid]);
+        const res = me.nodeSortFn(child, node.childNodes[mid]);
         if (res <= 0) {
             return me.findInsertIndex(node, child, start, mid);
         } else {
@@ -172,14 +172,14 @@ Ext.define('PVE.tree.ResourceTree', {
     },
 
     setIconCls: function (info) {
-        let cls = PVE.Utils.get_object_icon_class(info.type, info);
+        const cls = PVE.Utils.get_object_icon_class(info.type, info);
         if (cls !== '') {
             info.iconCls = cls;
         }
     },
 
     getToolTip: function (info) {
-        let qtips = [];
+        const qtips = [];
         if (info.qmpstatus || info.status) {
             qtips.push(Ext.String.format(gettext('Status: {0}'), info.qmpstatus || info.status));
         }
@@ -190,7 +190,7 @@ Ext.define('PVE.tree.ResourceTree', {
             qtips.push(Ext.String.format(gettext('HA State: {0}'), info.hastate));
         }
         if (info.type === 'storage') {
-            let usage = info.disk / info.maxdisk;
+            const usage = info.disk / info.maxdisk;
             if (usage >= 0.0 && usage <= 1.0) {
                 qtips.push(Ext.String.format(gettext('Usage: {0}%'), (usage * 100).toFixed(2)));
             }
@@ -200,20 +200,20 @@ Ext.define('PVE.tree.ResourceTree', {
             return undefined;
         }
 
-        let tip = qtips.join(', ');
+        const tip = qtips.join(', ');
         info.tip = tip;
         return tip;
     },
 
     // private
     addChildSorted: function (node, info, insertPool = false) {
-        let me = this;
+        const me = this;
 
         me.setIconCls(info);
 
-        let nestPools = PVE.UIOptions.getTreeSortingValue('nest-pools');
+        const nestPools = PVE.UIOptions.getTreeSortingValue('nest-pools');
         if (info.type === 'pool' && info.pool && !insertPool && nestPools) {
-            let parentPool = info.pool.split('/').slice(0, -1).join('/');
+            const parentPool = info.pool.split('/').slice(0, -1).join('/');
             if (parentPool.length > 0) {
                 let parent = node.findChild('id', `/pool/${parentPool}`, true);
                 if (parent !== node) {
@@ -233,7 +233,7 @@ Ext.define('PVE.tree.ResourceTree', {
             if (me.viewFilter.groupRenderer) {
                 info.text = me.viewFilter.groupRenderer(info);
             } else {
-                let defaults = PVE.tree.ResourceTree.typeDefaults[info.groupbyid];
+                const defaults = PVE.tree.ResourceTree.typeDefaults[info.groupbyid];
                 if (defaults && defaults.text) {
                     info.text = defaults.text;
                 } else {
@@ -241,10 +241,10 @@ Ext.define('PVE.tree.ResourceTree', {
                 }
             }
         }
-        let child = Ext.create('PVETree', info);
+        const child = Ext.create('PVETree', info);
 
         if (node.childNodes) {
-            let pos = me.findInsertIndex(node, child, 0, node.childNodes.length);
+            const pos = me.findInsertIndex(node, child, 0, node.childNodes.length);
             node.insertBefore(child, node.childNodes[pos]);
         } else {
             node.insertBefore(child);
@@ -255,10 +255,10 @@ Ext.define('PVE.tree.ResourceTree', {
 
     // private
     groupChild: function (node, info, groups, level) {
-        let me = this;
+        const me = this;
 
-        let groupBy = groups[level];
-        let v = info[groupBy];
+        const groupBy = groups[level];
+        const v = info[groupBy];
 
         if (v) {
             let group = node.findChild('groupbyid', v, true);
@@ -273,7 +273,7 @@ Ext.define('PVE.tree.ResourceTree', {
                         id: groupBy + '/' + v,
                     };
                     if (groupBy === 'type') {
-                        let defaults = PVE.tree.ResourceTree.typeDefaults[v];
+                        const defaults = PVE.tree.ResourceTree.typeDefaults[v];
                         if (defaults && defaults.iconCls) {
                             groupinfo.iconCls = defaults.iconCls;
                         }
@@ -296,10 +296,10 @@ Ext.define('PVE.tree.ResourceTree', {
     },
 
     saveSortingOptions: function () {
-        let me = this;
+        const me = this;
         let changed = false;
         for (const key of ['sort-field', 'group-templates', 'group-guest-types', 'nest-pools']) {
-            let newValue = PVE.UIOptions.getTreeSortingValue(key);
+            const newValue = PVE.UIOptions.getTreeSortingValue(key);
             if (me[key] !== newValue) {
                 me[key] = newValue;
                 changed = true;
@@ -309,22 +309,22 @@ Ext.define('PVE.tree.ResourceTree', {
     },
 
     initComponent: function () {
-        let me = this;
+        const me = this;
         me.saveSortingOptions();
 
-        let rstore = PVE.data.ResourceStore;
-        let sp = Ext.state.Manager.getProvider();
+        const rstore = PVE.data.ResourceStore;
+        const sp = Ext.state.Manager.getProvider();
 
         if (!me.viewFilter) {
             me.viewFilter = {};
         }
 
-        let pdata = {
+        const pdata = {
             dataIndex: {},
             updateCount: 0,
         };
 
-        let store = Ext.create('Ext.data.TreeStore', {
+        const store = Ext.create('Ext.data.TreeStore', {
             model: 'PVETree',
             root: {
                 expanded: true,
@@ -334,7 +334,7 @@ Ext.define('PVE.tree.ResourceTree', {
             },
         });
 
-        let stateid = 'rid';
+        const stateid = 'rid';
 
         const changedFields = [
             'disk',
@@ -352,18 +352,18 @@ Ext.define('PVE.tree.ResourceTree', {
         ];
 
         // special case ids from the tag view, since they change the id in the state
-        let idMapFn = function (id) {
+        const idMapFn = function (id) {
             if (!id) {
                 return undefined;
             }
             if (id.startsWith('qemu') || id.startsWith('lxc')) {
-                let [realId, _tag] = id.split('-');
+                const [realId, _tag] = id.split('-');
                 return realId;
             }
             return id;
         };
 
-        let findNode = function (rootNode, id) {
+        const findNode = function (rootNode, id) {
             if (!id) {
                 return undefined;
             }
@@ -380,7 +380,7 @@ Ext.define('PVE.tree.ResourceTree', {
 
         let firstUpdate = true;
 
-        let updateTree = function () {
+        const updateTree = function () {
             store.suspendEvents();
 
             let rootnode;
@@ -395,30 +395,30 @@ Ext.define('PVE.tree.ResourceTree', {
                 rootnode = me.store.getRootNode();
             }
             // remember selected node (and all parents)
-            let sm = me.getSelectionModel();
+            const sm = me.getSelectionModel();
             let lastsel = sm.getSelection()[0];
-            let parents = [];
-            let sorting_changed = me.saveSortingOptions();
+            const parents = [];
+            const sorting_changed = me.saveSortingOptions();
             for (let node = lastsel; node; node = node.parentNode) {
                 parents.push(node);
             }
 
-            let groups = me.viewFilter.groups || [];
+            const groups = me.viewFilter.groups || [];
             // explicitly check for node/template, as those are not always grouping attributes
-            let attrMoveChecks = me.viewFilter.attrMoveChecks ?? {};
+            const attrMoveChecks = me.viewFilter.attrMoveChecks ?? {};
 
             // also check for name for when the tree is sorted by name
-            let moveCheckAttrs = groups.concat(['node', 'template', 'name']);
-            let filterFn = me.viewFilter.getFilterFn ? me.viewFilter.getFilterFn() : Ext.identityFn;
+            const moveCheckAttrs = groups.concat(['node', 'template', 'name']);
+            const filterFn = me.viewFilter.getFilterFn ? me.viewFilter.getFilterFn() : Ext.identityFn;
 
             let reselect = false; // for disappeared nodes
-            let index = pdata.dataIndex;
+            const index = pdata.dataIndex;
             // remove vanished or moved items and update changed items in-place
             for (const [key, olditem] of Object.entries(index)) {
                 // getById() use find(), which is slow (ExtJS4 DP5)
-                let oldid = olditem.data.id;
-                let id = idMapFn(olditem.data.id);
-                let item = rstore.data.get(id);
+                const oldid = olditem.data.id;
+                const id = idMapFn(olditem.data.id);
+                const item = rstore.data.get(id);
 
                 let changed = sorting_changed,
                     moved = sorting_changed;
@@ -448,7 +448,7 @@ Ext.define('PVE.tree.ResourceTree', {
 
                 if (changed) {
                     olditem.beginEdit();
-                    let info = olditem.data;
+                    const info = olditem.data;
                     Ext.apply(info, item.data);
                     if (info.id !== oldid) {
                         info.id = oldid;
@@ -458,7 +458,7 @@ Ext.define('PVE.tree.ResourceTree', {
                 }
                 if ((!item || moved) && olditem.isLeaf()) {
                     delete index[key];
-                    let parentNode = olditem.parentNode;
+                    const parentNode = olditem.parentNode;
                     // a selected item moved (migration) or disappeared (destroyed), so deselect that
                     // node now and try to reselect the moved (or its parent) node later
                     if (lastsel && olditem.data.id === lastsel.data.id) {
@@ -469,25 +469,25 @@ Ext.define('PVE.tree.ResourceTree', {
                     store.remove(olditem);
                     parentNode.removeChild(olditem, true);
                     if (parentNode.childNodes.length < 1 && parentNode.parentNode) {
-                        let grandParent = parentNode.parentNode;
+                        const grandParent = parentNode.parentNode;
                         grandParent.removeChild(parentNode, true);
                     }
                 }
             }
 
-            let items = rstore.getData().items.flatMap(me.viewFilter.itemMap ?? Ext.identityFn);
+            const items = rstore.getData().items.flatMap(me.viewFilter.itemMap ?? Ext.identityFn);
             items.forEach(function (item) {
                 // add new items
-                let olditem = index[item.data.id];
+                const olditem = index[item.data.id];
                 if (olditem) {
                     return;
                 }
                 if (filterFn && !filterFn(item)) {
                     return;
                 }
-                let info = Ext.apply({ leaf: true }, item.data);
+                const info = Ext.apply({ leaf: true }, item.data);
 
-                let child = me.groupChild(rootnode, info, groups, 0);
+                const child = me.groupChild(rootnode, info, groups, 0);
                 if (child) {
                     index[item.data.id] = child;
                 }
@@ -496,7 +496,7 @@ Ext.define('PVE.tree.ResourceTree', {
             store.resumeEvents();
             store.fireEvent('refresh', store);
 
-            let foundChild = findNode(rootnode, lastsel?.data.id);
+            const foundChild = findNode(rootnode, lastsel?.data.id);
 
             // select parent node if original selected node vanished
             if (lastsel && !foundChild) {
@@ -544,12 +544,12 @@ Ext.define('PVE.tree.ResourceTree', {
                     rstore.un('load', updateTree);
                 },
                 beforecellmousedown: function (tree, td, cellIndex, record, tr, rowIndex, ev) {
-                    let sm = me.getSelectionModel();
+                    const sm = me.getSelectionModel();
                     // disable selection when right clicking except if the record is already selected
                     me.allowSelection = ev.button !== 2 || sm.isSelected(record);
                 },
                 beforeselect: function (tree, record, index, eopts) {
-                    let allow = me.allowSelection;
+                    const allow = me.allowSelection;
                     me.allowSelection = true;
                     return allow;
                 },
@@ -558,7 +558,7 @@ Ext.define('PVE.tree.ResourceTree', {
                     if (me.tip) {
                         return;
                     }
-                    let selectors = [
+                    const selectors = [
                         '.x-tree-node-text > span:not(.proxmox-tag-dark):not(.proxmox-tag-light)',
                         '.x-tree-icon',
                     ];
@@ -569,8 +569,8 @@ Ext.define('PVE.tree.ResourceTree', {
                         renderTo: Ext.getBody(),
                         listeners: {
                             beforeshow: function (tip) {
-                                let rec = me.getView().getRecord(tip.triggerElement);
-                                let tipText = me.getToolTip(rec.data);
+                                const rec = me.getView().getRecord(tip.triggerElement);
+                                const tipText = me.getToolTip(rec.data);
                                 if (tipText) {
                                     tip.update(tipText);
                                     return true;
@@ -587,7 +587,7 @@ Ext.define('PVE.tree.ResourceTree', {
             },
             clearTree: function () {
                 pdata.updateCount = 0;
-                let rootnode = me.store.getRootNode();
+                const rootnode = me.store.getRootNode();
                 rootnode.collapse();
                 rootnode.removeAll();
                 pdata.dataIndex = {};
@@ -598,7 +598,7 @@ Ext.define('PVE.tree.ResourceTree', {
                 updateTree();
             },
             selectExpand: function (node) {
-                let sm = me.getSelectionModel();
+                const sm = me.getSelectionModel();
                 if (!sm.isSelected(node)) {
                     sm.select(node);
                     for (let iter = node; iter; iter = iter.parentNode) {
@@ -610,7 +610,7 @@ Ext.define('PVE.tree.ResourceTree', {
                 }
             },
             selectById: function (nodeid) {
-                let rootnode = me.store.getRootNode();
+                const rootnode = me.store.getRootNode();
                 let node;
                 if (nodeid === 'root') {
                     node = rootnode;
@@ -643,7 +643,7 @@ Ext.define('PVE.tree.ResourceTree', {
                 before: function (node) {
                     if (node.data.groupbyid) {
                         node.beginEdit();
-                        let info = node.data;
+                        const info = node.data;
                         me.setIconCls(info);
                         if (me.viewFilter.groupRenderer) {
                             info.text = me.viewFilter.groupRenderer(info);
-- 
2.47.3





  parent reply	other threads:[~2026-08-18  8:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-18  8:31 [PATCH manager 0/2] fix #7136: ui: tree: harmonize folder view resource ordering Elias Huhsovitz
2026-08-18  8:31 ` [PATCH manager 1/2] " Elias Huhsovitz
2026-08-18  9:15   ` Dominik Csapak
2026-08-18  9:36     ` Elias Huhsovitz
2026-08-18  8:31 ` Elias Huhsovitz [this message]
2026-08-18  9:15   ` [PATCH manager 2/2] ui: tree: reduce reduce usage of `let` keyword Dominik Csapak
2026-08-18 12:09 ` superseded: [PATCH manager 0/2] fix #7136: ui: tree: harmonize folder view resource ordering Elias Huhsovitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260818083110.15786-3-e.huhsovitz@proxmox.com \
    --to=e.huhsovitz@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal