From 112cc727ea3f026f5ec7c19120fe6eb87d90f732 Mon Sep 17 00:00:00 2001 From: anoy Date: Mon, 9 Nov 2020 11:41:34 +0100 Subject: add locale-aware sorting for folders and feeds Signed-off-by: anoy --- CHANGELOG.md | 1 + js/controller/NavigationController.js | 7 +++++++ templates/part.navigation.feed.php | 2 +- templates/part.navigation.folder.php | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddfacfbe0..8718d1127 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file. ## Unreleased - Remove deprecated YouTube playlist API +- Locale-aware sorting for folders and feeds ## 15.1.0-rc1 diff --git a/js/controller/NavigationController.js b/js/controller/NavigationController.js index 7467acffa..1b183cbdf 100644 --- a/js/controller/NavigationController.js +++ b/js/controller/NavigationController.js @@ -406,4 +406,11 @@ app.controller('NavigationController', function ($route, FEED_TYPE, FeedResource setSelectedFolderForRoute(); }); + $rootScope.localeComparator = function(v1, v2) { + if (v1.type === 'string' && v2.type === 'string') { + return v1.value.localeCompare(v2.value); + } + + return (v1.value === v2.value) ? 0 : ((v1.value < v2.value) ? -1 : 1); + }; }); diff --git a/templates/part.navigation.feed.php b/templates/part.navigation.feed.php index 3c694d3d9..7070ba2ce 100644 --- a/templates/part.navigation.feed.php +++ b/templates/part.navigation.feed.php @@ -7,7 +7,7 @@ 'icon-loading-small': !(feed.id || feed.error) }" ng-repeat="feed in Navigation.getFeedsOfFolder() - | orderBy:['-pinned', 'title.toLowerCase()'] track by feed.url" + | orderBy:['-pinned', 'title.toLowerCase()']:false:localeComparator track by feed.url" ng-show="Navigation.isFeedUnread(feed.id) || Navigation.isShowAll() || Navigation.isFeedActive(feed.id) diff --git a/templates/part.navigation.folder.php b/templates/part.navigation.folder.php index 67ac81e84..f58fea37c 100644 --- a/templates/part.navigation.folder.php +++ b/templates/part.navigation.folder.php @@ -5,7 +5,7 @@ deleted: folder.deleted, editing: folder.editing }" - ng-repeat="folder in Navigation.getFolders() | orderBy:'name.toLowerCase()'" + ng-repeat="folder in Navigation.getFolders() | orderBy:'name.toLowerCase()':false:localeComparator" ng-show="Navigation.isFolderUnread(folder.id) || Navigation.isShowAll() || Navigation.isFolderActive(folder.id) -- cgit v1.2.3