f2b286f6218af9c4fe3d6608692e58d59f043a04
[working/Evergreen.git] / Open-ILS / web / js / ui / default / staff / admin / local / app.js
1 angular.module('egLocalAdmin',
2     ['ngRoute', 'ui.bootstrap', 'egCoreMod','egUiMod'])
3
4 .config(['$routeProvider','$locationProvider','$compileProvider', 
5  function($routeProvider , $locationProvider , $compileProvider) {
6
7     $locationProvider.html5Mode(true);
8     $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|mailto|blob):/); 
9         
10     var resolver = {delay : function(egStartup) {return egStartup.go()}};
11
12     var eframe_template = 
13         '<eg-embed-frame allow-escape="true" min-height="min_height" url="local_admin_url" handlers="funcs"></eg-embed-frame>';
14
15     // non-conify routes come first
16     $routeProvider.when('/admin/local/money/cash_reports', {
17         template: eframe_template,
18         controller: 'EmbedXHTMLCtl', // non-conify
19         resolve : resolver
20     });
21    
22     // non-conify routes come first
23     $routeProvider.when('/admin/local/actor/closed_dates', {
24         template: eframe_template,
25         controller: 'EmbedXHTMLCtl', // non-conify
26         resolve : resolver
27     });
28     
29     // non-conify routes come first
30     $routeProvider.when('/admin/local/asset/copy_locations', {
31         template: eframe_template,
32         controller: 'EmbedXHTMLCtl', // non-conify
33         resolve : resolver
34     });
35
36     // non-conify routes come first
37     $routeProvider.when('/admin/local/asset/org_unit_settings', {
38         template: eframe_template,
39         controller: 'EmbedXHTMLCtl', // non-conify
40         resolve : resolver
41     });
42
43     $routeProvider.when('/admin/local/config/non_cat_types', {
44         template: eframe_template,
45         controller: 'EmbedXHTMLCtl', // non-conify
46         resolve : resolver
47     });
48
49     $routeProvider.when('/admin/local/asset/stat_cat_editor', {
50         template: eframe_template,
51         controller: 'EmbedXHTMLCtl', // non-conify
52         resolve : resolver
53     });
54
55     // Conify page handler
56     $routeProvider.when('/admin/local/:schema/:page', {
57         template: eframe_template,
58         controller: 'EmbedConifyCtl',
59         resolve : resolver
60     });
61
62     // default page 
63     $routeProvider.otherwise({
64         templateUrl : './admin/local/t_splash',
65         resolve : resolver
66     });
67 }])
68
69 .controller('EmbedConifyCtl', 
70        ['$scope','$routeParams','$location','egCore',
71 function($scope , $routeParams , $location , egCore) {
72
73     $scope.funcs = {
74         ses : egCore.auth.token(),
75     }
76
77     var conify_path = '/eg/conify/global/' + 
78         $routeParams.schema + '/' + $routeParams.page;
79
80     $scope.min_height = 800;
81
82     // embed URL must include protocol/domain or it will be loaded via
83     // push-state, resulting in an infinitely nested pages.
84     $scope.local_admin_url = 
85         $location.absUrl().replace(/\/eg\/staff.*/, conify_path);
86
87     console.log('Loading local admin URL: ' + $scope.local_admin_url);
88
89 }])
90
91 .controller('EmbedXHTMLCtl', 
92        ['$scope','$location','egCore','$timeout',
93 function($scope , $location , egCore , $timeout) {
94
95     $scope.funcs = {};
96
97     var xul_base = '/xul/server/admin/';
98     var page_parts = $location.path().split(/\//);
99     var url = xul_base + page_parts[page_parts.length - 1] + '.xhtml';
100
101     // old-school XUL admin UI's only want CGI ses values.
102     url += '?ses=' + egCore.auth.token();
103     
104     console.log('Loading local admin URL: ' + $scope.local_admin_url);
105
106     $scope.local_admin_url = $location.absUrl().replace(/\/.*/, url);
107 }])
108