Fix create addressbook not visible.

This commit is contained in:
Alexander Weidinger 2016-03-07 00:50:30 +01:00
parent 7be3158616
commit 0146816788
6 changed files with 83 additions and 2 deletions

View File

@ -7,7 +7,12 @@ app.controller('addressbooklistCtrl', ['$scope', 'AddressBookService', 'Settings
ctrl.createAddressBook = function() {
if(ctrl.newAddressBookName) {
AddressBookService.create(ctrl.newAddressBookName);
AddressBookService.create(ctrl.newAddressBookName).then(function() {
AddressBookService.getAddressBook(ctrl.newAddressBookName).then(function(addressBook) {
ctrl.addressBooks.push(addressBook);
scope.$apply();
});
});
}
};
}]);

View File

@ -1475,6 +1475,14 @@ var Client = (function () {
options.xhr = options.xhr || this.xhr;
return calendars.syncCaldavAccount(account, options);
}
}, {
key: 'getAddressBook',
value: function getAddressBook() {
var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
options.xhr = options.xhr || this.xhr;
return contacts.getAddressBook(options);
}
}, {
key: 'createAddressBook',
value: function createAddressBook() {
@ -1551,6 +1559,7 @@ exports.Client = Client;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.getAddressBook = getAddressBook;
exports.createAddressBook = createAddressBook;
exports.deleteAddressBook = deleteAddressBook;
exports.renameAddressBook = renameAddressBook;
@ -1656,6 +1665,19 @@ var listAddressBooks = _co2['default'].wrap(regeneratorRuntime.mark(function cal
}));
exports.listAddressBooks = listAddressBooks;
function getAddressBook(options) {
var addressBookUrl = _url2['default'].resolve(options.url, options.displayName);
var req = request.propfind({
props: [{ name: 'displayname', namespace: ns.DAV }, { name: 'owner', namespace: ns.DAV }, { name: 'getctag', namespace: ns.CALENDAR_SERVER }, { name: 'resourcetype', namespace: ns.DAV }, { name: 'sync-token', namespace: ns.DAV },
//{ name: 'groups', namespace: ns.OC },
{ name: 'invite', namespace: ns.OC }],
depth: 1
});
return options.xhr.send(req, addressBookUrl);
}
/**
* @return {Promise} promise will resolve when the addressBook has been created.
*

View File

@ -73,6 +73,11 @@ export class Client {
return calendars.syncCaldavAccount(account, options);
}
getAddressBook(options={}) {
options.xhr = options.xhr || this.xhr;
return contacts.getAddressBook(options);
}
createAddressBook(options={}) {
options.xhr = options.xhr || this.xhr;
return contacts.createAddressBook(options);

View File

@ -56,6 +56,24 @@ export let listAddressBooks = co.wrap(function *(account, options) {
return addressBooks;
});
export function getAddressBook(options) {
let addressBookUrl = url.resolve(options.url, options.displayName);
var req = request.propfind({
props: [
{ name: 'displayname', namespace: ns.DAV },
{ name: 'owner', namespace: ns.DAV },
{ name: 'getctag', namespace: ns.CALENDAR_SERVER },
{ name: 'resourcetype', namespace: ns.DAV },
{ name: 'sync-token', namespace: ns.DAV },
//{ name: 'groups', namespace: ns.OC },
{ name: 'invite', namespace: ns.OC }
],
depth: 1
});
return options.xhr.send(req, addressBookUrl);
}
/**
* @return {Promise} promise will resolve when the addressBook has been created.
*

View File

@ -177,7 +177,12 @@ app.controller('addressbooklistCtrl', ['$scope', 'AddressBookService', 'Settings
ctrl.createAddressBook = function() {
if(ctrl.newAddressBookName) {
AddressBookService.create(ctrl.newAddressBookName);
AddressBookService.create(ctrl.newAddressBookName).then(function() {
AddressBookService.getAddressBook(ctrl.newAddressBookName).then(function(addressBook) {
ctrl.addressBooks.push(addressBook);
scope.$apply();
});
});
}
};
}]);
@ -800,6 +805,19 @@ app.factory('AddressBookService', ['DavClient', 'DavService', 'SettingsService',
return addressBooks[0];
},
getAddressBook: function(displayName) {
return DavService.then(function(account) {
return DavClient.getAddressBook({displayName:displayName, url:account.homeUrl}).then(function(addressBook) {
addressBook = new AddressBook({
url: addressBook[0].href,
data: addressBook[0]
});
addressBook.displayName = displayName;
return addressBook;
});
});
},
create: function(displayName) {
return DavService.then(function(account) {
return DavClient.createAddressBook({displayName:displayName, url:account.homeUrl});

View File

@ -40,6 +40,19 @@ app.factory('AddressBookService', ['DavClient', 'DavService', 'SettingsService',
return addressBooks[0];
},
getAddressBook: function(displayName) {
return DavService.then(function(account) {
return DavClient.getAddressBook({displayName:displayName, url:account.homeUrl}).then(function(addressBook) {
addressBook = new AddressBook({
url: addressBook[0].href,
data: addressBook[0]
});
addressBook.displayName = displayName;
return addressBook;
});
});
},
create: function(displayName) {
return DavService.then(function(account) {
return DavClient.createAddressBook({displayName:displayName, url:account.homeUrl});