From: Bill Erickson Date: Mon, 4 May 2015 01:19:51 +0000 (-0400) Subject: patron reg X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=69b4211a0d7d33370097db332569cf1696255225;p=working%2FEvergreen.git patron reg Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/templates/staff/circ/patron/index.tt2 b/Open-ILS/src/templates/staff/circ/patron/index.tt2 index bb0d2f8798..3234b95f1c 100644 --- a/Open-ILS/src/templates/staff/circ/patron/index.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/index.tt2 @@ -17,6 +17,7 @@ [% INCLUDE 'staff/circ/share/hold_strings.tt2' %] + diff --git a/Open-ILS/src/templates/staff/circ/patron/register.tt2 b/Open-ILS/src/templates/staff/circ/patron/register.tt2 index 4a3c9ce3df..b943d6da90 100644 --- a/Open-ILS/src/templates/staff/circ/patron/register.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/register.tt2 @@ -5,8 +5,8 @@ %] [% BLOCK APP_JS %] - + [% END %] diff --git a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 index 3f85366f4e..98f0102167 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 @@ -1,2 +1,36 @@ - +[% DOC_IMG = '/images/question-mark.png' %] + +
[% l('Patron Edit') %]
+ + +
+ {{idl_fields[selected_field_doc.fm_class()][selected_field_doc.field()].label}} +
{{selected_field_doc.string()}}
+
+ + +
+
+ {{idl_fields.ac.barcode.label}} + +
+
+ +
+
+ +
+
+ {{idl_fields.au.usrname.label}} + +
+
+ +
+
+ diff --git a/Open-ILS/src/templates/staff/css/circ.css.tt2 b/Open-ILS/src/templates/staff/css/circ.css.tt2 index 8d6c139d88..c0f44b82e8 100644 --- a/Open-ILS/src/templates/staff/css/circ.css.tt2 +++ b/Open-ILS/src/templates/staff/css/circ.css.tt2 @@ -54,6 +54,27 @@ but the ones I'm finding aren't quite cutting it..*/ border-bottom: 1px solid #CCC; } +.reg-field-doc { + width: 21px; + background-image: url("/opac/images/advancedsearch-icon.png"); +} + +#reg-field-doc { + position: fixed; + top:124px; + right:30px; + width:300px; + border:2px dashed #d9e8f9; + -moz-border-radius: 10px; + font-weight: bold; + padding: 20px; + margin-top: 20px; +} + +#reg-field-doc legend { + font-size: 100%; +} + [%# vim: ft=css diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/app.js b/Open-ILS/web/js/ui/default/staff/circ/patron/app.js index f80486fd46..b3001c9b35 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/app.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/app.js @@ -157,7 +157,7 @@ angular.module('egPatronApp', ['ngRoute', 'ui.bootstrap', $routeProvider.when('/circ/patron/:id/edit', { templateUrl: './circ/patron/t_edit', - controller: 'PatronEditCtrl', + controller: 'PatronRegCtrl', resolve : resolver }); @@ -1141,26 +1141,6 @@ function($scope , $q , $routeParams, egCore , $modal , patronSvc , egCirc) { /** - * Link to patron edit UI - */ -.controller('PatronEditCtrl', - ['$scope','$routeParams','$location','egCore','patronSvc', -function($scope, $routeParams, $location , egCore , patronSvc) { - $scope.initTab('edit', $routeParams.id); - - var url = $location.absUrl().replace(/\/staff.*/, '/actor/user/register'); - url += '?usr=' + encodeURIComponent($routeParams.id); - - $scope.funcs = { - on_save : function() { - patronSvc.refreshPrimary(); - } - } - - $scope.patron_edit_url = url; -}]) - -/** * Credentials tester */ .controller('PatronVerifyCredentialsCtrl', diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js b/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js new file mode 100644 index 0000000000..1e72b7592a --- /dev/null +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js @@ -0,0 +1,72 @@ + +angular.module('egCoreMod') +// toss tihs onto egCoreMod since the page app may vary + +.factory('patronRegSvc', ['$q', 'egCore', function($q, egCore) { + + var service = {}; + + service.init = function(scope) { + return $q.all([ + service.get_field_doc(), + ]); + }; + + service.get_field_doc = function() { + + service.field_doc = {}; + + return egCore.pcrud.search('fdoc', { + fm_class: ['au', 'ac', 'aua', 'actsc', 'asv', 'asvq', 'asva']}) + .then(null, null, function(doc) { + if (!service.field_doc[doc.fm_class()]) { + service.field_doc[doc.fm_class()] = {}; + } + service.field_doc[doc.fm_class()][doc.field()] = doc; + }); + }; + + + return service; +}]); + + +function PatronRegCtrl($scope, $routeParams, + $location, egCore, patronSvc, patronRegSvc) { + + patronRegSvc.init().then(function() { + $scope.field_doc = patronRegSvc.field_doc; + }); + + // only add the classes we care about to the scope to avoid bloat + $scope.idl_fields = { + au : egCore.idl.classes.au.field_map, + ac : egCore.idl.classes.ac.field_map, + aua : egCore.idl.classes.aua.field_map + }; + + if ($scope.initTab) { + // Inside the patron app + + $scope.initTab('other', $routeParams.id).then(function() { + + $scope.patron = egCore.idl.toHash(patronSvc.current); + + }); + + } else { + // Outside of the patron app + + $scope.patron_id = $routeParams.edit_id; + $scope.clone_id = $routeParams.clone_id; + $scope.stage_username = $routeParams.stage_username; + + $scope.patron = { + card : {} + }; + $scope.patron.isnew = true; + } +} + + +// TODO: $inject controller params diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/register.js b/Open-ILS/web/js/ui/default/staff/circ/patron/register.js index 13b4a41ed2..b8cbe272eb 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/register.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/register.js @@ -15,25 +15,25 @@ angular.module('egPatronRegApp', ['ui.bootstrap','ngRoute','egCoreMod']) ['egStartup', function(egStartup) {return egStartup.go()}]} $routeProvider.when('/circ/patron/register', { - template: '', + templateUrl: './circ/patron/t_edit', controller: 'PatronRegCtrl', resolve : resolver }); $routeProvider.when('/circ/patron/register/stage/:stage_username', { - template: '', + templateUrl: './circ/patron/t_edit', controller: 'PatronRegCtrl', resolve : resolver }); $routeProvider.when('/circ/patron/register/edit/:edit_id', { - template: '', + templateUrl: './circ/patron/t_edit', controller: 'PatronRegCtrl', resolve : resolver }); $routeProvider.when('/circ/patron/register/clone/:clone_id', { - template: '', + templateUrl: './circ/patron/t_edit', controller: 'PatronRegCtrl', resolve : resolver }); @@ -41,32 +41,7 @@ angular.module('egPatronRegApp', ['ui.bootstrap','ngRoute','egCoreMod']) $routeProvider.otherwise({redirectTo : '/circ/patron/register'}); }) +// dummy service so standalone patron editor can reference it +.factory('patronSvc', function() {}); -/** - * */ -.controller('PatronRegCtrl', - ['$scope','$routeParams','$location','egCore', -function($scope , $routeParams , $location , egCore) { - - - var url = $location.absUrl().replace(/\/staff.*/, '/actor/user/register'); - - // since we don't store auth cookies, pass the cookie via URL - url += '?ses=' + egCore.auth.token(); - - if ($routeParams.stage_username) { - url += '&stage=' + encodeURIComponent($routeParams.stage_username); - } - - if ($routeParams.edit_id) { - url += '&usr=' + encodeURIComponent($routeParams.edit_id); - } - - if ($routeParams.clone_id) { - url += '&clone=' + encodeURIComponent($routeParams.clone_id); - } - // pass the reg URL into the scope, thus into the - $scope.reg_url = url; -}]) -