]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
fix #4001: FileBrowser: show number of items in a directory as size
authorStefan Sterz <s.sterz@proxmox.com>
Thu, 5 May 2022 13:52:49 +0000 (15:52 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Sun, 15 May 2022 05:47:34 +0000 (07:47 +0200)
Signed-off-by: Stefan Sterz <s.sterz@proxmox.com>
src/window/FileBrowser.js

index bb262bcd0b135ca3c21df4fef87296fea889fbca..54967c285eb793a88262aeb4679f5c2e2839f848 100644 (file)
@@ -2,6 +2,19 @@ Ext.define('proxmox-file-tree', {
     extend: 'Ext.data.Model',
 
     fields: ['filepath', 'text', 'type', 'size',
+       {
+           name: 'sizedisplay',
+           calculate: data => {
+               if (data.size === undefined) {
+                   return '';
+               } else if (data.type === 'd') {
+                   let fs = data.size === 1 ? gettext('{0} item') : gettext('{0} items');
+                   return Ext.String.format(fs, data.size);
+               }
+
+               return Proxmox.Utils.format_size(data.size);
+           },
+       },
        {
            name: 'mtime',
            type: 'date',
@@ -270,10 +283,15 @@ Ext.define("Proxmox.window.FileBrowser", {
                },
                {
                    text: gettext('Size'),
-                   dataIndex: 'size',
-                   renderer: value => value === undefined ? '' : Proxmox.Utils.format_size(value),
+                   dataIndex: 'sizedisplay',
                    sorter: {
                        sorterFn: function(a, b) {
+                           if (a.data.type === 'd' && b.data.type !== 'd') {
+                               return -1;
+                           } else if (a.data.type !== 'd' && b.data.type === 'd') {
+                               return 1;
+                           }
+
                            let asize = a.data.size || 0;
                            let bsize = b.data.size || 0;