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