summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoranoy <anoymouserver+github@mailbox.org>2020-11-09 11:41:34 +0100
committerBenjamin Brahmer <info@b-brahmer.de>2020-11-09 16:58:44 +0100
commit112cc727ea3f026f5ec7c19120fe6eb87d90f732 (patch)
tree2bf588cccc465a23aeeca65274af87bfada467bf
parent47ab9f38c4e2fc732741a0303811ef9ea14bd163 (diff)
add locale-aware sorting for folders and feeds
Signed-off-by: anoy <anoymouserver+github@mailbox.org>
-rw-r--r--CHANGELOG.md1
-rw-r--r--js/controller/NavigationController.js7
-rw-r--r--templates/part.navigation.feed.php2
-rw-r--r--templates/part.navigation.folder.php2
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(<?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)