sogo/UI/WebServerResources/js/Administration/Administration.app.js
2015-10-06 16:38:16 -04:00

89 lines
2.5 KiB
JavaScript

/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* JavaScript for SOGoAdministration */
(function() {
'use strict';
angular.module('SOGo.AdministrationUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.Authentication', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.SchedulerUI'])
.config(configure)
.run(runBlock);
/**
* @ngInject
*/
configure.$inject = ['$stateProvider', '$urlRouterProvider'];
function configure($stateProvider, $urlRouterProvider) {
$stateProvider
.state('administration', {
abstract: true,
views: {
administration: {
templateUrl: 'administration.html',
controller: 'AdministrationController',
controllerAs: 'app'
}
}
})
.state('administration.rights', {
url: '/rights',
views: {
module: {
templateUrl: 'rights.html'
}
}
})
.state('administration.rights.edit', {
url: '/:userId/:folderId/edit',
views: {
acl: {
templateUrl: 'UIxAdministrationAclEditor', // UI/Templates/Administration/UIxAdministrationAclEditor.wox
controller: 'AdministrationAclController',
controllerAs: 'acl'
}
},
resolve: {
stateFolder: stateFolder
}
});
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/rights');
}
stateFolder.$inject = ['$stateParams', 'User', 'AddressBook', 'Calendar'];
function stateFolder($stateParams, User, AddressBook, Calendar) {
var user = _.find(User.$users, function(user) {
return user.uid == $stateParams.userId;
});
var folder = _.find(user.$$folders, function(folder) {
return folder.name == $stateParams.folderId;
});
var o;
if (folder.type == "Appointment") {
o = new Calendar({id: folder.name.split('/').pop(),
owner: folder.owner,
name: folder.displayName});
} else {
o = new AddressBook({id: folder.name.split('/').pop(),
owner: folder.owner,
name: folder.displayName});
}
return o;
}
/**
* @ngInject
*/
runBlock.$inject = ['$rootScope'];
function runBlock($rootScope) {
$rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {
console.error(event, current, previous, rejection);
});
}
})();