From a02414cb10ac871ee2303ccd87eb4b6bfe76111a Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Tue, 26 May 2020 17:17:48 -0400 Subject: [PATCH] start AngularJS curbside page app Signed-off-by: Galen Charlton --- .../src/templates/staff/circ/curbside/index.tt2 | 19 +++++++++ .../src/templates/staff/circ/curbside/t_main.tt2 | 39 +++++++++++++++++++ Open-ILS/src/templates/staff/navbar.tt2 | 7 ++++ .../web/js/ui/default/staff/circ/curbside/app.js | 45 ++++++++++++++++++++++ .../web/js/ui/default/staff/services/navbar.js | 5 ++- 5 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 Open-ILS/src/templates/staff/circ/curbside/index.tt2 create mode 100644 Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 create mode 100644 Open-ILS/web/js/ui/default/staff/circ/curbside/app.js diff --git a/Open-ILS/src/templates/staff/circ/curbside/index.tt2 b/Open-ILS/src/templates/staff/circ/curbside/index.tt2 new file mode 100644 index 0000000000..2eae7aef37 --- /dev/null +++ b/Open-ILS/src/templates/staff/circ/curbside/index.tt2 @@ -0,0 +1,19 @@ +[% + WRAPPER "staff/base.tt2"; + ctx.page_title = l("Curbside Pickup"); + ctx.page_app = "egCurbsideApp"; +%] + +[% BLOCK APP_JS %] + + + +[% END %] + +
+ +[% END %] + diff --git a/Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 b/Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 new file mode 100644 index 0000000000..768e532fd4 --- /dev/null +++ b/Open-ILS/src/templates/staff/circ/curbside/t_main.tt2 @@ -0,0 +1,39 @@ +
+
+ [% l('Curbside Pickup') %] +
+
+ +
+
+ + + +
+ XXX +
+
+ +
+ XXX +
+
+ +
+ XXX +
+
+ +
+ XXX +
+
+ +
+ XXX +
+
+
+
+
diff --git a/Open-ILS/src/templates/staff/navbar.tt2 b/Open-ILS/src/templates/staff/navbar.tt2 index 220c3d1d1f..b483c886e7 100644 --- a/Open-ILS/src/templates/staff/navbar.tt2 +++ b/Open-ILS/src/templates/staff/navbar.tt2 @@ -237,6 +237,13 @@ [% l('Offline Circulation') %] +
  • +
  • + + + [% l('Curbside Pickup') %] + +
  • diff --git a/Open-ILS/web/js/ui/default/staff/circ/curbside/app.js b/Open-ILS/web/js/ui/default/staff/circ/curbside/app.js new file mode 100644 index 0000000000..df25ee95e7 --- /dev/null +++ b/Open-ILS/web/js/ui/default/staff/circ/curbside/app.js @@ -0,0 +1,45 @@ +angular.module('egCurbsideApp', ['ui.bootstrap','ngRoute','egCoreMod','egGridMod','ngToast','egCurbsideAppDep']); +angular.module('egCurbsideAppDep', []); + +angular.module('egCurbsideApp') +.config(['ngToastProvider', function(ngToastProvider) { + ngToastProvider.configure({ + verticalPosition: 'bottom', + animation: 'fade' + }); +}]) + +.config(function($routeProvider, $locationProvider, $compileProvider) { + $locationProvider.html5Mode(true); + $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|mailto|blob):/); // grid export + + var resolver = {delay : function(egStartup) {return egStartup.go()}}; + + $routeProvider.when('/circ/curbside/index', { + templateUrl: './circ/curbside/t_main', + controller: 'CurbsideCtrl', + resolve : resolver + }); + + $routeProvider.when('/circ/curbside/:active_tab', { + templateUrl: './circ/curbside/t_main', + controller: 'CurbsideCtrl', + resolve : resolver + }); + + // default page + $routeProvider.otherwise({redirectTo : '/circ/curbside/index'}); +}) + +.controller('CurbsideCtrl', + ['$scope','$routeParams','$location', +function($scope , $routeParams , $location ) { + $scope.active_tab = $routeParams.active_tab ? $routeParams.active_tab : 'to-be-staged'; + + $scope.$watch('active_tab', function(newVal, oldVal) { + if (oldVal != newVal) { + var new_path = '/circ/curbside/' + $scope.active_tab; + $location.path(new_path); + } + }); +}]) diff --git a/Open-ILS/web/js/ui/default/staff/services/navbar.js b/Open-ILS/web/js/ui/default/staff/services/navbar.js index b6ff1d31fe..2cca5dd115 100644 --- a/Open-ILS/web/js/ui/default/staff/services/navbar.js +++ b/Open-ILS/web/js/ui/default/staff/services/navbar.js @@ -112,7 +112,8 @@ angular.module('egCoreMod') egCore.org.settings([ 'ui.staff.max_recent_patrons', - 'ui.staff.angular_catalog.enabled' + 'ui.staff.angular_catalog.enabled', + 'circ.curbside' ]).then(function(s) { var val = s['ui.staff.max_recent_patrons']; $scope.showRecentPatron = val > 0; @@ -120,6 +121,8 @@ angular.module('egCoreMod') $scope.showAngularCatalog = s['ui.staff.angular_catalog.enabled']; + $scope.enableCurbside = + s['circ.curbside']; }); } // need to defer initialization of hotkeys to this point -- 2.11.0