diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-02-18 12:29:05 +0100 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-08-11 13:28:53 +0200 |
commit | 173059f6d00faa06dab9188efb2d7536f15861e4 (patch) | |
tree | 2d3efee8b0e682b16d33fb8a37e7f5567b696800 /apps | |
parent | 86ae3bd1e7d20e4f28ea9d7b9f71f1fdef0087aa (diff) | |
download | nextcloud-server-173059f6d00faa06dab9188efb2d7536f15861e4.tar.gz nextcloud-server-173059f6d00faa06dab9188efb2d7536f15861e4.zip |
Fixed file list sorting
Now using a natural sort algorithm that is more consistent between JS
and PHP (although not perfect in some corner cases)
- added OC.Util.naturalSortComparator that uses the same algo that was
used for the user list
- changed user list and files list to use OC.Util.naturalSortComparator
- removed toLowerCase() and changed the comparator to use
String.localeCompare()
- added unit tests
- added OC_NaturalSort that is used by OCP\Util::naturalSortCompare()
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/js/filelist.js | 2 | ||||
-rw-r--r-- | apps/files/lib/helper.php | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 532ed466968..383b6c0cd2e 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1860,7 +1860,7 @@ if (fileInfo1.type !== 'dir' && fileInfo2.type === 'dir') { return 1; } - return fileInfo1.name.localeCompare(fileInfo2.name); + return OC.Util.naturalSortCompare(fileInfo1.name, fileInfo2.name); }, /** * Compares two file infos by size. diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php index 50b4e8338a8..d857c1df154 100644 --- a/apps/files/lib/helper.php +++ b/apps/files/lib/helper.php @@ -66,7 +66,7 @@ class Helper } elseif ($aType !== 'dir' and $bType === 'dir') { return 1; } else { - return strnatcasecmp($a->getName(), $b->getName()); + return \OCP\Util::naturalSortCompare($a->getName(), $b->getName()); } } |