99 lines
2.7 KiB
JavaScript
99 lines
2.7 KiB
JavaScript
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* JavaScript for SOGoAdministration */
|
|
|
|
(function() {
|
|
'use strict';
|
|
|
|
/**
|
|
* @ngInject
|
|
*/
|
|
AdministrationAclController.$inject = ['$animate', '$state', '$mdToast', 'stateUser', 'stateFolder', 'User'];
|
|
function AdministrationAclController($animate, $state, $mdToast, stateUser, stateFolder, User) {
|
|
var vm = this;
|
|
|
|
vm.user = stateUser;
|
|
vm.folder = stateFolder;
|
|
vm.folderType = angular.isDefined(stateFolder.$cards)? 'AddressBook' : 'Calendar';
|
|
vm.selectedUser = null;
|
|
vm.selectedUid = null;
|
|
vm.selectUser = selectUser;
|
|
vm.removeUser = removeUser;
|
|
vm.getTemplate = getTemplate;
|
|
vm.close = close;
|
|
vm.save = save;
|
|
|
|
vm.userToAdd = '';
|
|
vm.searchText = '';
|
|
vm.userFilter = userFilter;
|
|
vm.addUser = addUser;
|
|
|
|
stateFolder.$acl.$users(stateFolder.owner).then(function(data) {
|
|
vm.users = data;
|
|
});
|
|
|
|
function getTemplate() {
|
|
if (angular.isDefined(stateFolder.$cards))
|
|
return '../' + stateFolder.owner + '/Contacts/' + stateFolder.id + '/UIxContactsUserRightsEditor';
|
|
|
|
return '../' + stateFolder.owner + '/Calendar/' + stateFolder.id + '/UIxCalUserRightsEditor';
|
|
}
|
|
|
|
function selectUser(user) {
|
|
if (vm.selectedUid == user.uid) {
|
|
vm.selectedUid = null;
|
|
}
|
|
else {
|
|
vm.selectedUid = user.uid;
|
|
vm.selectedUser = user;
|
|
vm.selectedUser.$rights();
|
|
}
|
|
}
|
|
|
|
function userFilter($query) {
|
|
return User.$filter($query, stateFolder.$acl.users, { dry: true });
|
|
}
|
|
|
|
function removeUser(user) {
|
|
stateFolder.$acl.$removeUser(user.uid).catch(function(data, status) {
|
|
Dialog.alert(l('Warning'), l('An error occured please try again.'));
|
|
});
|
|
}
|
|
|
|
function addUser(data) {
|
|
if (data) {
|
|
stateFolder.$acl.$addUser(data, stateFolder.owner).then(function() {
|
|
vm.userToAdd = '';
|
|
vm.searchText = '';
|
|
}, function(error) {
|
|
Dialog.alert(l('Warning'), error);
|
|
});
|
|
}
|
|
}
|
|
|
|
function close() {
|
|
$state.go('administration.rights').then(function() {
|
|
delete vm.user.selectedFolder;
|
|
vm.user = null;
|
|
});
|
|
}
|
|
|
|
function save() {
|
|
stateFolder.$acl.$saveUsersRights(stateFolder.owner).then(function() {
|
|
$mdToast.show(
|
|
$mdToast.simple()
|
|
.content(l('ACLs saved'))
|
|
.position('top right')
|
|
.hideDelay(3000)
|
|
);
|
|
}, function(data, status) {
|
|
Dialog.alert(l('Warning'), l('An error occured please try again.'));
|
|
});
|
|
}
|
|
}
|
|
|
|
angular
|
|
.module('SOGo.AdministrationUI')
|
|
.controller('AdministrationAclController', AdministrationAclController);
|
|
|
|
})();
|