1 angular.module('egOrgUnitApp',
2 ['ngRoute', 'ui.bootstrap', 'treeControl', 'egCoreMod', 'egUiMod', 'ngToast'])
4 .config(['ngToastProvider', function(ngToastProvider) {
5 ngToastProvider.configure({
6 verticalPosition: 'bottom',
11 .config(function($routeProvider, $locationProvider, $compileProvider) {
12 $locationProvider.html5Mode(true);
13 $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|mailto|blob):/); // grid export
15 var resolver = {delay :
16 ['egStartup', function(egStartup) {return egStartup.go()}]}
18 $routeProvider.when('/admin/actor/org_unit/:org_id', {
19 templateUrl: './admin/actor/org_unit/t_index',
20 controller: 'OrgUnitCtrl',
24 $routeProvider.when('/admin/actor/org_unit/', {
25 templateUrl: './admin/actor/org_unit/t_index',
26 controller: 'OrgUnitCtrl',
30 $routeProvider.otherwise({redirectTo : '/admin/actor/org_unit/'});
33 .controller('OrgUnitCtrl',
34 ['$scope','$q','$routeParams','$window','egCore','egIDL','egOrg','ngToast',
35 function($scope , $q , $routeParams , $window , egCore , egIDL , egOrg , ngToast ) {
37 $scope.reset = function() {
38 $scope.org = angular.copy($scope.selectedNode);
46 $scope.treedata = [ egCore.idl.toHash( egOrg.tree() ) ];
47 function find_org(tree,id) {
51 for (var i in tree.children) {
52 var child = tree.children[i];
53 ou = find_org( child, id );
54 if (ou) { return ou; }
58 $scope.selected = find_org($scope.treedata,id) || $scope.treedata[0]; // FIXME -- why no work?
59 $scope.expandedNodes = [ $scope.treedata[0], $scope.selected ];
69 $scope.showSelected = function(sel) {
70 $scope.selectedNode = sel;
71 $scope.org = angular.copy($scope.selectedNode);
75 $scope.org_tab = 'main';
76 $scope.set_org_tab = function(tab) {
94 $scope.update = function() {
95 var new_org = $scope.org.id == -1 ? new egIDL.aou() : egOrg.get($scope.org.id);
96 new_org.id( $scope.org.id );
97 new_org.parent_ou( $scope.org.parent_ou );
98 new_org.name( $scope.org.name );
99 new_org.shortname( $scope.org.shortname );
100 new_org.email( $scope.org.email );
101 new_org.phone( $scope.org.phone );
102 new_org.ou_type( 2 ); // FIXME
103 egCore.pcrud[$scope.org.id == -1 ? 'create' : 'update'](new_org).then(
104 function(res) { // success
105 window.sessionStorage.removeItem('eg.env.aou.tree');
108 ngToast.create(egCore.strings.ORG_UPDATE_SUCCESS);
110 function(res) { // failure
111 ngToast.create(egCore.strings.ORG_UPDATE_FAILURE);
113 function(res) { // progress
118 $scope.remove = function() {
119 var new_org = egOrg.get($scope.org.id);
120 egCore.pcrud.remove(new_org).then(
121 function(res) { // success
122 window.sessionStorage.removeItem('eg.env.aou.tree');
125 ngToast.create(egCore.strings.ORG_DELETE_SUCCESS);
127 function(res) { // failure
128 ngToast.create(egCore.strings.ORG_DELETE_FAILURE);
130 function(res) { // progress
135 $scope.new_child = function() {
136 $scope.org.parent_ou = $scope.org.id;
138 $scope.org.name = '';
139 $scope.org.shortname = '';