mirror of https://github.com/nextcloud/contacts
Update and delete function addition
Cleanup old unproper function Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
parent
072f88cddc
commit
162f4a9984
|
@ -96,16 +96,22 @@ angular.module('contactsApp')
|
|||
AddressBookService.registerObserverCallback(function(ev) {
|
||||
$timeout(function() {
|
||||
$scope.$apply(function() {
|
||||
if (ev.event === 'delete') {
|
||||
// Get contacts
|
||||
switch (ev.event) {
|
||||
case 'delete':
|
||||
case 'disable':
|
||||
ctrl.loading = true;
|
||||
ContactService.updateDeletedAddressbook(function() {
|
||||
ContactService.removeContactsFromAddressbook(ev.addressBook, function() {
|
||||
ContactService.getAll().then(function(contacts) {
|
||||
ctrl.contactList = contacts;
|
||||
ctrl.loading = false;
|
||||
ctrl.selectNearestContact(ctrl.getSelectedId());
|
||||
});
|
||||
});
|
||||
break;
|
||||
default:
|
||||
// unknown event -> leave callback without action
|
||||
return;
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -6,10 +6,11 @@ angular.module('contactsApp')
|
|||
|
||||
var observerCallbacks = [];
|
||||
|
||||
var notifyObservers = function(eventName) {
|
||||
var notifyObservers = function(eventName, addressBook) {
|
||||
var ev = {
|
||||
event: eventName,
|
||||
addressBooks: addressBooks
|
||||
addressBooks: addressBooks,
|
||||
addressBook: addressBook,
|
||||
};
|
||||
angular.forEach(observerCallbacks, function(callback) {
|
||||
callback(ev);
|
||||
|
@ -84,7 +85,7 @@ angular.module('contactsApp')
|
|||
return DavClient.deleteAddressBook(addressBook).then(function() {
|
||||
var index = addressBooks.indexOf(addressBook);
|
||||
addressBooks.splice(index, 1);
|
||||
notifyObservers('delete');
|
||||
notifyObservers('delete', addressBook);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -134,6 +135,10 @@ angular.module('contactsApp')
|
|||
).then(function(response) {
|
||||
if (response.status === 207) {
|
||||
addressBook.enabled = !addressBook.enabled;
|
||||
notifyObservers(
|
||||
addressBook.enabled ? 'enable' : 'disable',
|
||||
addressBook
|
||||
);
|
||||
}
|
||||
return addressBook;
|
||||
});
|
||||
|
|
|
@ -333,21 +333,14 @@ angular.module('contactsApp')
|
|||
});
|
||||
};
|
||||
|
||||
this.updateDeletedAddressbook = function(callback) {
|
||||
// Delete contacts which addressbook has been removed from cache
|
||||
AddressBookService.getAll().then(function(addressBooks) {
|
||||
var addressBooksIds = [];
|
||||
angular.forEach(addressBooks, function(addressBook) {
|
||||
addressBooksIds.push(addressBook.displayName);
|
||||
});
|
||||
angular.forEach(contactsCache.values(), function(contact) {
|
||||
if (addressBooksIds.indexOf(contact.addressBookId) === -1) {
|
||||
contactsCache.remove(contact.uid());
|
||||
}
|
||||
});
|
||||
callback();
|
||||
notifyObservers('groupsUpdate');
|
||||
this.removeContactsFromAddressbook = function(addressBook, callback) {
|
||||
angular.forEach(contactsCache.values(), function(contact) {
|
||||
if (contact.addressBookId === addressBook.displayName) {
|
||||
contactsCache.remove(contact.uid());
|
||||
}
|
||||
});
|
||||
callback();
|
||||
notifyObservers('groupsUpdate');
|
||||
};
|
||||
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue