summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-04-21 15:48:15 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2016-04-21 15:48:15 +0200
commit015668acfac041b977f1753161cba6d34ca7cb20 (patch)
tree3d67dc25082bb7a15f6c8f1e553f500e0c22059d
parent64fe77a3fc51c3eb88c5ffedfa75986a33fbc78e (diff)
Fix sorting- fixes #382
-rw-r--r--js/filters/localeOrderBy_filter.js22
-rw-r--r--templates/contactList.html2
2 files changed, 9 insertions, 15 deletions
diff --git a/js/filters/localeOrderBy_filter.js b/js/filters/localeOrderBy_filter.js
index ecb2ad73..18e40c18 100644
--- a/js/filters/localeOrderBy_filter.js
+++ b/js/filters/localeOrderBy_filter.js
@@ -4,18 +4,6 @@ angular.module('contactsApp')
if (!Array.isArray(array)) return array;
if (!sortPredicate) return array;
- var isString = function (value) {
- return (typeof value === 'string');
- };
-
- var isNumber = function (value) {
- return (typeof value === 'number');
- };
-
- var isBoolean = function (value) {
- return (typeof value === 'boolean');
- };
-
var arrayCopy = [];
angular.forEach(array, function (item) {
arrayCopy.push(item);
@@ -23,13 +11,19 @@ angular.module('contactsApp')
arrayCopy.sort(function (a, b) {
var valueA = a[sortPredicate];
+ if (angular.isFunction(valueA)) {
+ valueA = a[sortPredicate]();
+ }
var valueB = b[sortPredicate];
+ if (angular.isFunction(valueB)) {
+ valueB = b[sortPredicate]();
+ }
- if (isString(valueA)) {
+ if (angular.isString(valueA)) {
return !reverseOrder ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
}
- if (isNumber(valueA) || isBoolean(valueA)) {
+ if (angular.isNumber(valueA) || angular.isBoolean(valueA)) {
return !reverseOrder ? valueA - valueB : valueB - valueA;
}
diff --git a/templates/contactList.html b/templates/contactList.html
index 5245133e..05b30408 100644
--- a/templates/contactList.html
+++ b/templates/contactList.html
@@ -2,7 +2,7 @@
<button ng-show="!ctrl.loading && !ctrl.invalid" class="app-content-list-button" id="new-contact-button"
type="button" name="button" ng-click="ctrl.createContact()">{{ctrl.t.addContact}}</button>
<div class="app-content-list-item"
- ng-repeat="contact in ctrl.contactList = (ctrl.contacts | contactGroupFilter:ctrl.routeParams.gid | localeOrderBy:'displayName()' | filter:query) track by contact.uid()"
+ ng-repeat="contact in ctrl.contactList = (ctrl.contacts | contactGroupFilter:ctrl.routeParams.gid | localeOrderBy:'displayName' | filter:query) track by contact.uid()"
contact data="contact"
ng-click="setSelected(contact.uid())"
ng-class="{active: contact.uid() === ctrl.getSelectedId()}">