mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-22 11:55:24 +00:00
Multiple improvements regarding ACLs
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
var newAddressBookData = AddressBook.$$resource.create('createFolder', this.name);
|
||||
this.$unwrap(newAddressBookData);
|
||||
}
|
||||
else if (this.id){
|
||||
else if (this.id) {
|
||||
this.$acl = new AddressBook.$$Acl(this.id);
|
||||
}
|
||||
}
|
||||
@@ -55,10 +55,12 @@
|
||||
*/
|
||||
AddressBook.$add = function(addressbook) {
|
||||
// Insert new addressbook at proper index
|
||||
var sibling = _.find(this.$addressbooks, function(o) {
|
||||
var sibling, i;
|
||||
|
||||
sibling = _.find(this.$addressbooks, function(o) {
|
||||
return (o.isRemote || (o.id != 'personal' && o.name.localeCompare(addressbook.name) === 1));
|
||||
});
|
||||
var i = sibling? _.indexOf(_.pluck(this.$addressbooks, 'id'), sibling.id) : 1;
|
||||
i = sibling ? _.indexOf(_.pluck(this.$addressbooks, 'id'), sibling.id) : 1;
|
||||
this.$addressbooks.splice(i, 0, addressbook);
|
||||
};
|
||||
|
||||
@@ -83,11 +85,11 @@
|
||||
/**
|
||||
* @memberOf AddressBook
|
||||
* @desc Fetch list of cards and return an AddressBook instance
|
||||
* @param {string} addressbook_id - the addressbook identifier
|
||||
* @param {string} addressbookId - the addressbook identifier
|
||||
* @returns an AddressBook object instance
|
||||
*/
|
||||
AddressBook.$find = function(addressbook_id) {
|
||||
var futureAddressBookData = AddressBook.$$resource.find(addressbook_id);
|
||||
AddressBook.$find = function(addressbookId) {
|
||||
var futureAddressBookData = AddressBook.$$resource.fetch(addressbookId, 'view');
|
||||
|
||||
return new AddressBook(futureAddressBookData);
|
||||
};
|
||||
@@ -109,17 +111,19 @@
|
||||
* @returns a collection of Cards instances
|
||||
*/
|
||||
AddressBook.prototype.$filter = function(search, options) {
|
||||
var _this = this;
|
||||
var params = { 'search': 'name_or_address',
|
||||
'value': search,
|
||||
'sort': 'c_cn',
|
||||
'asc': 'true' };
|
||||
var _this = this,
|
||||
params = {
|
||||
search: 'name_or_address',
|
||||
value: search,
|
||||
sort: 'c_cn',
|
||||
asc: 'true'
|
||||
};
|
||||
if (options && options.excludeLists) {
|
||||
params.excludeLists = true;
|
||||
}
|
||||
|
||||
return this.$id().then(function(addressbook_id) {
|
||||
var futureAddressBookData = AddressBook.$$resource.filter(addressbook_id, params);
|
||||
return this.$id().then(function(addressbookId) {
|
||||
var futureAddressBookData = AddressBook.$$resource.fetch(addressbookId, 'view', params);
|
||||
return futureAddressBookData.then(function(data) {
|
||||
var cards;
|
||||
if (options && options.dry) {
|
||||
@@ -157,8 +161,8 @@
|
||||
};
|
||||
|
||||
AddressBook.prototype.$delete = function() {
|
||||
var _this = this;
|
||||
var d = AddressBook.$q.defer();
|
||||
var _this = this,
|
||||
d = AddressBook.$q.defer();
|
||||
AddressBook.$$resource.remove(this.id)
|
||||
.then(function() {
|
||||
var i = _.indexOf(_.pluck(AddressBook.$addressbooks, 'id'), _this.id);
|
||||
@@ -171,14 +175,14 @@
|
||||
};
|
||||
|
||||
AddressBook.prototype.$save = function() {
|
||||
return AddressBook.$$resource.save(this.id, this.$omit()).then(function (data) {
|
||||
return AddressBook.$$resource.save(this.id, this.$omit()).then(function(data) {
|
||||
return data;
|
||||
});
|
||||
};
|
||||
|
||||
AddressBook.prototype.$getCard = function(card_id) {
|
||||
return this.$id().then(function(addressbook_id) {
|
||||
return AddressBook.$Card.$find(addressbook_id, card_id);
|
||||
AddressBook.prototype.$getCard = function(cardId) {
|
||||
return this.$id().then(function(addressbookId) {
|
||||
return AddressBook.$Card.$find(addressbookId, cardId);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
* @see {@link AddressBook.$getCard}
|
||||
*/
|
||||
Card.$find = function(addressbook_id, card_id) {
|
||||
var futureCardData = this.$$resource.find([addressbook_id, card_id].join('/'));
|
||||
var futureCardData = this.$$resource.fetch([addressbook_id, card_id].join('/'), 'view');
|
||||
|
||||
if (card_id) return new Card(futureCardData); // a single card
|
||||
|
||||
@@ -340,7 +340,8 @@
|
||||
};
|
||||
|
||||
Card.prototype.$addMember = function(email) {
|
||||
var card = new Card({email: email, emails: [{value: email}]});
|
||||
var card = new Card({email: email, emails: [{value: email}]}),
|
||||
i;
|
||||
if (angular.isUndefined(this.refs)) {
|
||||
this.refs = [card];
|
||||
}
|
||||
@@ -348,7 +349,7 @@
|
||||
this.refs.push(card);
|
||||
}
|
||||
else {
|
||||
for (var i = 0; i < this.refs.length; i++) {
|
||||
for (i = 0; i < this.refs.length; i++) {
|
||||
if (this.refs[i].email == email) {
|
||||
break;
|
||||
}
|
||||
@@ -393,10 +394,12 @@
|
||||
* @param {Card} card
|
||||
*/
|
||||
Card.prototype.$updateMember = function(index, email, card) {
|
||||
var ref = {email: email,
|
||||
emails: [{value: email}],
|
||||
reference: card.c_name,
|
||||
fn: card.$fullname()};
|
||||
var ref = {
|
||||
email: email,
|
||||
emails: [{value: email}],
|
||||
reference: card.c_name,
|
||||
fn: card.$fullname()
|
||||
};
|
||||
this.refs[index] = new Card(ref);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user