[% INCLUDE 'staff/circ/share/hold_strings.tt2' %]
<script src="[% ctx.media_prefix %]/js/ui/default/staff/cat/services/record.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/app.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/regctl.js"></script>
<!-- load the rest on demand? -->
%]
[% 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/circ/patron/register.js"></script>
+<script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/patron/regctl.js"></script>
<link rel="stylesheet" href="[% ctx.base_path %]/staff/css/circ.css" />
[% END %]
-<eg-embed-frame url="patron_edit_url" handlers="funcs"></eg-embed-frame>
+[% DOC_IMG = '/images/question-mark.png' %]
+
+<div class="strong-text-2">[% l('Patron Edit') %]</div>
+
+<!-- IDL field documentation -->
+<fieldset id="reg-field-doc" ng-show="selected_field_doc">
+ <legend>{{idl_fields[selected_field_doc.fm_class()][selected_field_doc.field()].label}}</legend>
+ <div>{{selected_field_doc.string()}}</div>
+</fieldset>
+
+
+<div class="row pad-all-min">
+ <div class="col-md-3 reg-field-label">
+ <span>{{idl_fields.ac.barcode.label}}</span>
+ <img ng-show="field_doc.ac.barcode"
+ ng-click="selected_field_doc=field_doc.ac.barcode"
+ src='[% DOC_IMG %]'></img>
+ </div>
+ <div class="col-md-3 reg-field-input">
+ <input type="text" ng-model="patron.card.barcode"/>
+ </div>
+</div>
+
+<div class="row pad-all-min">
+ <div class="col-md-3 reg-field-label">
+ <span>{{idl_fields.au.usrname.label}}</span>
+ <img ng-show="field_doc.au.usrname"
+ ng-click="selected_field_doc=field_doc.au.usrname"
+ src='[% DOC_IMG %]'></img>
+ </div>
+ <div class="col-md-3 reg-field-input">
+ <input type="text" ng-model="patron.usrname"/>
+ </div>
+</div>
+
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
$routeProvider.when('/circ/patron/:id/edit', {
templateUrl: './circ/patron/t_edit',
- controller: 'PatronEditCtrl',
+ controller: 'PatronRegCtrl',
resolve : resolver
});
/**
- * 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',
--- /dev/null
+
+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
['egStartup', function(egStartup) {return egStartup.go()}]}
$routeProvider.when('/circ/patron/register', {
- template: '<eg-embed-frame url="reg_url"></eg-embed-frame>',
+ templateUrl: './circ/patron/t_edit',
controller: 'PatronRegCtrl',
resolve : resolver
});
$routeProvider.when('/circ/patron/register/stage/:stage_username', {
- template: '<eg-embed-frame url="reg_url"></eg-embed-frame>',
+ templateUrl: './circ/patron/t_edit',
controller: 'PatronRegCtrl',
resolve : resolver
});
$routeProvider.when('/circ/patron/register/edit/:edit_id', {
- template: '<eg-embed-frame url="reg_url"></eg-embed-frame>',
+ templateUrl: './circ/patron/t_edit',
controller: 'PatronRegCtrl',
resolve : resolver
});
$routeProvider.when('/circ/patron/register/clone/:clone_id', {
- template: '<eg-embed-frame url="reg_url"></eg-embed-frame>',
+ templateUrl: './circ/patron/t_edit',
controller: 'PatronRegCtrl',
resolve : resolver
});
$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;
-}])
-