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(<?php p($_['folderId']); ?>) - | 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)