LP#1823387: avoid double slashes in booking URLs, which will not work with recent...
[working/Evergreen.git] / Open-ILS / web / js / ui / default / staff / booking / app.js
1 angular.module('egBooking',
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="booking_url" handlers="funcs"></eg-embed-frame>';
13
14     $routeProvider.when('/booking/legacy/:noun/:verb', {
15         template: eframe_template,
16         controller: 'EmbedBookingCtl',
17         resolve : resolver
18     });
19
20     // default page 
21     $routeProvider.otherwise({
22         templateUrl : './t_splash',
23         resolve : resolver
24     });
25 }])
26
27 .controller('EmbedBookingCtl', 
28        ['$scope','$routeParams','$location','egCore',
29 function($scope , $routeParams , $location , egCore) {
30
31     $scope.funcs = {
32         ses : egCore.auth.token(),
33     }
34
35     var booking_path = '/eg/' + 
36         $routeParams.noun + '/' + $routeParams.verb + location.search;
37
38     // embed URL must include protocol/domain or it will be loaded via
39     // push-state, resulting in an infinitely nested pages.
40     $scope.booking_url = 
41         $location.absUrl().replace(/\/eg\/staff.*/, booking_path);
42
43     console.log('Loading Booking URL: ' + $scope.booking_url);
44
45 }])
46