From: Bill Erickson Date: Fri, 11 Jul 2014 18:41:56 +0000 (-0400) Subject: pending patrons, initial X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=8309c87223b0635179beee6671e371dc7f742a80;p=working%2FEvergreen.git pending patrons, initial Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/templates/staff/circ/pending_patrons/index.tt2 b/Open-ILS/src/templates/staff/circ/pending_patrons/index.tt2 new file mode 100644 index 0000000000..99539e5a78 --- /dev/null +++ b/Open-ILS/src/templates/staff/circ/pending_patrons/index.tt2 @@ -0,0 +1,17 @@ +[% + WRAPPER "staff/base.tt2"; + ctx.page_title = l("Pending Patrons"); + ctx.page_app = "egPendingPatronsApp"; +%] + +[% BLOCK APP_JS %] + + + + + +[% END %] + +
+ +[% END %] diff --git a/Open-ILS/src/templates/staff/circ/pending_patrons/t_list.tt2 b/Open-ILS/src/templates/staff/circ/pending_patrons/t_list.tt2 new file mode 100644 index 0000000000..3809d1230b --- /dev/null +++ b/Open-ILS/src/templates/staff/circ/pending_patrons/t_list.tt2 @@ -0,0 +1,34 @@ +
+
+ [% l('Pending Patrons') %] +
+
+ +[% l('Home Library: ' ) %] + +
+ + + + + + + + + + + + + + + + + + + diff --git a/Open-ILS/src/templates/staff/navbar.tt2 b/Open-ILS/src/templates/staff/navbar.tt2 index 3ce1a65dc5..036dc40d67 100644 --- a/Open-ILS/src/templates/staff/navbar.tt2 +++ b/Open-ILS/src/templates/staff/navbar.tt2 @@ -39,13 +39,13 @@ - + [% l('Search for Patrons') %]
  • - + [% l('Search for Copies by Barcode') %]
  • @@ -97,6 +97,12 @@ [% l('Retrieve Last Patron') %] +
  • + + + [% l('Pending Patrons') %] + +
  • diff --git a/Open-ILS/web/js/ui/default/staff/circ/pending_patrons/app.js b/Open-ILS/web/js/ui/default/staff/circ/pending_patrons/app.js new file mode 100644 index 0000000000..7a1b4e33aa --- /dev/null +++ b/Open-ILS/web/js/ui/default/staff/circ/pending_patrons/app.js @@ -0,0 +1,74 @@ +angular.module('egPendingPatronsApp', + ['ngRoute', 'ui.bootstrap', 'egCoreMod', 'egUiMod', 'egGridMod']) + +.config(function($routeProvider, $locationProvider, $compileProvider) { + $locationProvider.html5Mode(true); + $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|blob):/); // grid export + + var resolver = {delay : + ['egStartup', function(egStartup) {return egStartup.go()}]} + + $routeProvider.when('/circ/pending_patrons/list', { + templateUrl: './circ/pending_patrons/t_list', + controller: 'PendingPatronsCtrl', + resolve : resolver + }); + + $routeProvider.otherwise({redirectTo : '/circ/pending_patrons/list'}); +}) + +.controller('PendingPatronsCtrl', + ['$scope','$q','$routeParams','$window','$location','egCore','egGridDataProvider', +function($scope , $q , $routeParams , $window , $location , egCore , egGridDataProvider) { + + var pending_patrons = []; + var provider = egGridDataProvider.instance({}); + $scope.grid_data_provider = provider; + + function load_patron(item) { + if (angular.isArray(item)) item = item[0]; + if (!item) return; + // TODO: where does patron editor w/ no context patron live? + } + + $scope.grid_controls = { + activateItem : load_patron + } + + function refresh_page() { + pending_patrons = []; + provider.refresh(); + } + + provider.get = function(offset, count) { + var deferred = $q.defer(); + var recv_index = 0; + + egCore.net.request( + 'open-ils.actor', + 'open-ils.actor.user.stage.retrieve.by_org', + egCore.auth.token(), $scope.context_org.id() + + ).then( + deferred.resolve, null, + function(user) { + user.id = user.user.row_id(); + user.user.home_ou(egCore.org.get(user.user.home_ou())); + + // only one (mailing) address is captured during patron + // self-registration + user.mailing_address = user.mailing_addresses[0]; + pending_patrons[offset + recv_index++] = user; + deferred.notify(user); + } + ); + + return deferred.promise; + } + + $scope.context_org = egCore.org.get(egCore.auth.user().ws_ou()) + $scope.$watch('context_org', function(newVal, oldVal) { + if (newVal && newVal != oldVal) refresh_page(); + }); +}]) +