(js) New common ACL Controller

This commit is contained in:
Francis Lachapelle
2015-07-28 10:53:29 -04:00
parent a8765eb41b
commit e8dcc6df37
6 changed files with 102 additions and 247 deletions

View File

@@ -132,17 +132,12 @@
}
function share(addressbook) {
if (addressbook.id != vm.service.selectedFolder.id) {
// Counter the possibility to click on the "hidden" secondary button
select(addressbook);
return;
}
// Fetch list of ACL users
addressbook.$acl.$users().then(function() {
// Show ACL editor
$mdDialog.show({
templateUrl: addressbook.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox
controller: AddressBookACLController,
controller: 'AclController', // from the ng module SOGo.Common
controllerAs: 'acl',
clickOutsideToClose: true,
escapeToClose: true,
@@ -153,82 +148,6 @@
}
});
});
/**
* @ngInject
*/
AddressBookACLController.$inject = ['$scope', '$mdDialog', 'usersWithACL', 'User', 'folder'];
function AddressBookACLController($scope, $mdDialog, usersWithACL, User, folder) {
var vm = this;
vm.users = usersWithACL; // ACL users
vm.folder = folder;
vm.selectedUser = null;
vm.userToAdd = '';
vm.searchText = '';
vm.userFilter = userFilter;
vm.closeModal = closeModal;
vm.saveModal = saveModal;
vm.confirmChange = confirmChange;
vm.removeUser = removeUser;
vm.addUser = addUser;
vm.selectUser = selectUser;
function userFilter($query) {
return User.$filter($query, folder.$acl.users);
}
function closeModal() {
folder.$acl.$resetUsersRights(); // cancel changes
$mdDialog.hide();
}
function saveModal() {
folder.$acl.$saveUsersRights().then(function() {
$mdDialog.hide();
}, function(data, status) {
Dialog.alert(l('Warning'), l('An error occured please try again.'));
});
}
function confirmChange(user) {
var confirmation = user.$confirmRights();
if (confirmation) {
Dialog.confirm(l('Warning'), confirmation).catch(function() {
user.$resetRights(true);
});
}
}
function removeUser(user) {
folder.$acl.$removeUser(user.uid).then(function() {
if (user.uid == vm.selectedUser.uid) {
vm.selectedUser = null;
}
}, function(data, status) {
Dialog.alert(l('Warning'), l('An error occured please try again.'));
});
}
function addUser(data) {
if (data) {
folder.$acl.$addUser(data).then(function() {
vm.userToAdd = '';
vm.searchText = '';
}, function(error) {
Dialog.alert(l('Warning'), error);
});
}
}
function selectUser(user) {
// Check if it is a different user
if (vm.selectedUser != user) {
vm.selectedUser = user;
vm.selectedUser.$rights();
}
}
}
}
/**