(feat) basic (but empty) admin module for SOGo v3

This commit is contained in:
Ludovic Marcotte
2015-09-14 14:09:29 -04:00
parent 3efbf65f80
commit e30fb0d1fb
5 changed files with 179 additions and 26 deletions
@@ -0,0 +1,61 @@
/* -*- 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.ContactsUI', 'SOGo.Authentication'])
.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'
}
},
resolve: {
stateAdministration: stateAdministration
}
})
.state('administration.rights', {
url: '/rights',
views: {
module: {
templateUrl: 'rights.html'
}
}
});
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/rights');
}
/**
* @ngInject
*/
stateAdministration.$inject = ['Administration'];
function stateAdministration(Administration) {
return Administration;
}
/**
* @ngInject
*/
runBlock.$inject = ['$rootScope'];
function runBlock($rootScope) {
$rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {
console.error(event, current, previous, rejection);
});
}
})();
@@ -0,0 +1,44 @@
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
(function() {
'use strict';
/**
* @name Administration
* @constructor
*/
function Administration() {
}
/**
* @memberof Administration
* @desc The factory we'll use to register with Angular
* @returns the Administration constructor
*/
Administration.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'User', function($q, $timeout, $log, Settings, Resource, User) {
angular.extend(Administration, {
$q: $q,
$timeout: $timeout,
$log: $log,
$$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),
activeUser: Settings.activeUser(),
$User: User
});
return new Administration(); // return unique instance
}];
/* Initialize module if necessary */
try {
angular.module('SOGo.AdministrationUI');
}
catch(e) {
angular.module('SOGo.AdministrationUI', ['SOGo.Common']);
}
/* Factory registration in Angular module */
angular.module('SOGo.AdministrationUI')
.factory('Administration', Administration.$factory);
})();
@@ -0,0 +1,28 @@
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* JavaScript for SOGoAdministration */
(function() {
'use strict';
/**
* @ngInject
*/
AdministrationController.$inject = ['$state', '$mdDialog', '$mdToast', 'Dialog', 'User', 'stateAdministration', 'Authentication'];
function AdministrationController($state, $mdDialog, $mdToast, Dialog, User, stateAdministration, Authentication) {
var vm = this;
vm.administration = stateAdministration;
vm.go = go;
function go(module) {
$state.go('administration.' + module);
}
}
angular
.module('SOGo.AdministrationUI')
.controller('AdministrationController', AdministrationController);
})();