[pve-devel] [PATCH manager v2] fix #6138: ui: storage content: use locale for sorting
Dominik Csapak
d.csapak at proxmox.com
Tue Mar 4 15:14:52 CET 2025
by using 'localeCompare'.
Assume the files 'a', 'B' and 'c'. The current default sorting results
in :
'B'
'a'
'c'
(C collation)
With this patch we use locale dependent sorting, so the browser/client
setting controls how it's sorted. For example with english, the list
becomes:
'a'
'B'
'c'
Which makes it easier to visually search for specific entries.
Using the default settings here makes sense (so no explicit
'sensitivity' setting for example.), since that is whats most
expected per locale.
Also enable 'numeric' sorting, so 'foo10' is sorted after 'foo2'.
Interestingly, the initial sorter (via the 'sorters' property of the
store), cannot seem to reuse the sorter defined in the columns, so
we have to specify it twice, once for the initial sort and once when
the user clicks the column header.
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes from v1:
* also include numeric sorting. Thanks @Fiona for noticing this!
www/manager6/storage/ContentView.js | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/www/manager6/storage/ContentView.js b/www/manager6/storage/ContentView.js
index daefaf4f..31f100f1 100644
--- a/www/manager6/storage/ContentView.js
+++ b/www/manager6/storage/ContentView.js
@@ -43,10 +43,10 @@ Ext.define('PVE.storage.ContentView', {
content: content,
},
},
- sorters: {
- property: 'volid',
- direction: 'ASC',
- },
+ sorters: [
+ (a, b) => a.data.text.toString().localeCompare(
+ b.data.text.toString(), undefined, { numeric: true }),
+ ],
});
if (!me.sm) {
@@ -153,6 +153,8 @@ Ext.define('PVE.storage.ContentView', {
flex: 2,
sortable: true,
renderer: PVE.Utils.render_storage_content,
+ sorter: (a, b) => a.data.text.toString().localeCompare(
+ b.data.text.toString(), undefined, { numeric: true }),
dataIndex: 'text',
},
'notes': {
--
2.39.5
More information about the pve-devel
mailing list