var search = {'owner':list};
- if (xulG && xulG.resultant_brsrc)
- search = {id: xulG.resultant_brsrc};
+ setTimeout(
+ function() {
+ if (xulG && xulG.resultant_brsrc)
+ search = {id: xulG.resultant_brsrc};
- brsrcGrid.overrideEditWidgets.type =
- new openils.widget.PCrudAutocompleteBox({
- "fmclass": "brt", "searchAttr": "name"
- });
- brsrcGrid.overrideEditWidgets.type.shove = {"create": ""};
- brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, search);
+ brsrcGrid.overrideEditWidgets.type =
+ new openils.widget.PCrudAutocompleteBox({
+ "fmclass": "brt", "searchAttr": "name"
+ });
+ brsrcGrid.overrideEditWidgets.type.shove = {"create": ""};
+ brsrcGrid.loadAll({order_by:{brsrc : 'barcode'}}, search);
+ }, 0
+ );
}
);
</script>
--- /dev/null
+[%
+ WRAPPER "staff/base.tt2";
+ ctx.page_title = l("Booking Administration");
+ ctx.page_app = "egBookingAdmin";
+%]
+
+[% BLOCK APP_JS %]
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/eframe.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/admin/booking/app.js"></script>
+<link rel="stylesheet" href="[% ctx.base_path %]/staff/css/admin.css" />
+[% END %]
+
+<div ng-view></div>
+
+[% END %]
--- /dev/null
+
+<div class="container-fluid" style="text-align:center">
+ <div class="alert alert-info alert-less-pad strong-text-2">
+ <span>[% l('Booking Administration') %]</span>
+ </div>
+</div>
+
+<div class="container admin-splash-container">
+
+[%
+ interfaces = [
+ [ l('Resource Attribute Maps'), "./admin/booking/conify/resource_attr_map" ]
+ ,[ l('Resource Attribute Values'), "./admin/booking/conify/resource_attr_value" ]
+ ,[ l('Resource Attributes'), "./admin/booking/conify/resource_attr" ]
+ ,[ l('Resource Types'), "./admin/booking/conify/resource_type" ]
+ ,[ l('Resources'), "./admin/booking/conify/resource" ]
+ ];
+
+ USE table(interfaces, cols=3);
+%]
+
+<div class="row">
+[% FOREACH col = table.cols %]
+ <div class="col-md-4">
+ [% FOREACH item = col %][% IF item.1 %]
+ <div class="row new-entry">
+ <div class="col-md-12">
+ <span class="glyphicon glyphicon-pencil"></span>
+ <a target="_self" href="[% item.1 %]">
+ [% item.0 %]
+ </a>
+ </div>
+ </div>
+ [% END %][% END %]
+ </div>
+[% END %]
+</div>
+
+</div>
</a>
</li>
<li>
+ <a href="./admin/booking/index" target="_self">
+ <span class="glyphicon glyphicon-calendar"></span>
+ [% l('Booking Administration') %]
+ </a>
+ </li>
+ <li>
<a href="./reporter/legacy/main" target="_self">
<span class="glyphicon glyphicon-object-align-bottom"></span>
[% l('Reports') %]
--- /dev/null
+angular.module('egBookingAdmin',
+ ['ngRoute', 'ui.bootstrap', 'egCoreMod','egUiMod'])
+
+.config(['$routeProvider','$locationProvider','$compileProvider',
+ function($routeProvider , $locationProvider , $compileProvider) {
+
+ $locationProvider.html5Mode(true);
+ $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/);
+ var resolver = {delay : function(egStartup) {return egStartup.go()}};
+
+ var eframe_template =
+ '<eg-embed-frame url="booking_admin_url" handlers="funcs"></eg-embed-frame>';
+
+ $routeProvider.when('/admin/booking/:noun/:verb/:extra?', {
+ template: eframe_template,
+ controller: 'EmbedBookingCtl',
+ resolve : resolver
+ });
+
+ // default page
+ $routeProvider.otherwise({
+ templateUrl : './admin/booking/t_splash',
+ resolve : resolver
+ });
+}])
+
+.controller('EmbedBookingCtl',
+ ['$scope','$routeParams','$location','egCore',
+function($scope , $routeParams , $location , egCore) {
+
+ $scope.funcs = {
+ ses : egCore.auth.token(),
+ }
+
+ var booking_path = '/eg/';
+
+ if ($routeParams.noun == 'conify') {
+ booking_path += 'conify/global/booking/' + $routeParams.verb
+ + (typeof $routeParams.extra != 'undefined'
+ ? '/' + $routeParams.extra
+ : '')
+ + location.search;
+ } else {
+ booking_path += 'booking/'
+ + $routeParams.noun + '/' + $routeParams.verb
+ + (typeof $routeParams.extra != 'undefined'
+ ? '/' + $routeParams.extra
+ : '')
+ + location.search;
+ }
+
+ // embed URL must include protocol/domain or it will be loaded via
+ // push-state, resulting in an infinitely nested pages.
+ $scope.booking_admin_url =
+ $location.absUrl().replace(/\/eg\/staff.*/, booking_path);
+
+ console.log('Loading Admin Booking URL: ' + $scope.booking_admin_url);
+
+}])
+