summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--js/components/addressBook/addressBook_controller.js3
-rw-r--r--js/services/addressBook_service.js6
-rw-r--r--js/services/contact_service.js31
-rw-r--r--templates/contactList.html2
4 files changed, 22 insertions, 20 deletions
diff --git a/js/components/addressBook/addressBook_controller.js b/js/components/addressBook/addressBook_controller.js
index b38dc3fe..714d2bf6 100644
--- a/js/components/addressBook/addressBook_controller.js
+++ b/js/components/addressBook/addressBook_controller.js
@@ -193,8 +193,7 @@ angular.module('contactsApp')
};
ctrl.toggleState = function() {
- window.localStorage.setItem('contacts_ab_'+ctrl.addressBook.key, !ctrl.addressBook.enabled);
- ctrl.enabled = !ctrl.enabled;
+ ctrl.enabled = AddressBookService.toggleState(ctrl.addressBook);
ContactService.fillCache();
};
diff --git a/js/services/addressBook_service.js b/js/services/addressBook_service.js
index ef58a81c..9a47badd 100644
--- a/js/services/addressBook_service.js
+++ b/js/services/addressBook_service.js
@@ -89,6 +89,12 @@ angular.module('contactsApp')
});
},
+ toggleState: function(addressBook) {
+ window.localStorage.setItem('contacts_ab_'+addressBook.key, !addressBook.enabled);
+ notifyObservers('toggleState');
+ return !addressBook.enabled;
+ },
+
rename: function(addressBook, displayName) {
return DavService.then(function(account) {
return DavClient.renameAddressBook(addressBook, {displayName:displayName, url:account.homeUrl});
diff --git a/js/services/contact_service.js b/js/services/contact_service.js
index d925a9d4..20938c32 100644
--- a/js/services/contact_service.js
+++ b/js/services/contact_service.js
@@ -44,7 +44,7 @@ angular.module('contactsApp')
});
// Get our full vCards
enabledAddressBooks.forEach(function(addressBook) {
- if(angular.isArray(xhrAddressBooks[addressBook.displayName]) && addressBook.enabled) {
+ if(angular.isArray(xhrAddressBooks[addressBook.displayName])) {
var promise = DavClient.getContacts(addressBook, {}, xhrAddressBooks[addressBook.displayName]).then(
function (vcards) {
return vcards.map(function (vcard) {
@@ -74,22 +74,19 @@ angular.module('contactsApp')
loadPromise = AddressBookService.getAll().then(function (enabledAddressBooks) {
var promises = [];
enabledAddressBooks.forEach(function (addressBook) {
- console.log('Processing contacts from '+addressBook.displayName+', status: '+addressBook.enabled);
- if(addressBook.enabled) {
- promises.push(
- AddressBookService.sync(addressBook).then(function (addressBook) {
- addressBook.objects.forEach(function(vcard) {
- try {
- var contact = new Contact(addressBook, vcard);
- contactsCache.put(contact.uid(), contact);
- } catch(error) {
- // eslint-disable-next-line no-console
- console.log('Invalid contact received: ', vcard);
- }
- });
- })
- );
- }
+ promises.push(
+ AddressBookService.sync(addressBook).then(function (addressBook) {
+ addressBook.objects.forEach(function(vcard) {
+ try {
+ var contact = new Contact(addressBook, vcard);
+ contactsCache.put(contact.uid(), contact);
+ } catch(error) {
+ // eslint-disable-next-line no-console
+ console.log('Invalid contact received: ', vcard);
+ }
+ });
+ })
+ );
});
return $q.all(promises).then(function () {
cacheFilled = true;
diff --git a/templates/contactList.html b/templates/contactList.html
index f5f7da06..c41dffb2 100644
--- a/templates/contactList.html
+++ b/templates/contactList.html
@@ -1,6 +1,6 @@
<div class="contacts-list" ng-class="{loading: ctrl.loading, 'mobile-show': ctrl.show}">
<div class="app-content-list-item"
- ng-repeat="contact in ctrl.filteredContacts = (ctrl.contactList | contactGroupFilter:ctrl.routeParams.gid | localeOrderBy:ctrl.sortBy | filter:query | limitTo:ctrl.limitTo ) as filtered track by contact.uid()"
+ ng-repeat="contact in ctrl.filteredContacts = (ctrl.contactList | filter:{'data':{'addressBook':{'enabled': true}}} | contactGroupFilter:ctrl.routeParams.gid | localeOrderBy:ctrl.sortBy | filter:query | limitTo:ctrl.limitTo) as filtered track by contact.uid()"
contact data="contact"
ng-click="setSelected(contact.uid())"
ng-class="{active: contact.uid() === ctrl.getSelectedId()}">