diff options
-rw-r--r-- | js/components/addressBook/addressBook_controller.js | 3 | ||||
-rw-r--r-- | js/services/addressBook_service.js | 6 | ||||
-rw-r--r-- | js/services/contact_service.js | 31 | ||||
-rw-r--r-- | templates/contactList.html | 2 |
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()}"> |