<script src="[% ctx.media_prefix %]/js/ui/default/staff/services/ui.js"></script>
<script src="[% ctx.media_prefix %]/js/ui/default/staff/circ/selfcheck/app.js"></script>
<link rel="stylesheet" href="[% ctx.base_path %]/staff/css/selfcheck.css" />
-
-<script>
-angular.module('egCoreMod').run(['egStrings', function(s) {
- s.CONFIRM_TIMEOUT_TITLE =
- "[% l('Inactivity Warning') %]";
- s.CONFIRM_TIMEOUT_MSG =
- "[% l('Your login session will soon timeout due to inactivity.') %]";
- s.CONFIRM_TIMEOUT_CONTINUE = "[% l('Continue Session') %]";
- s.CONFIRM_TIMEOUT_LOGOUT = "[% l('Logout') %]";
-}]);
-</script>
+[% INCLUDE 'staff/circ/selfcheck/strings.tt2' %]
[% END %]
-
<!-- TODO: CSS, header image, other styling...-->
<!-- header bar : main banner image and scan box -->
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-6">
- <div class="alert alert-warning" ng-if="scanbox.already_seen">
- [% l('Barcode already scanned: [_1]', '{{scanbox.already_seen}}') %]
+ <div class="alert alert-warning" ng-if="scanbox.err_str">
+ {{scanbox.err_str}}
</div>
- <div class="alert alert-warning" ng-if="scanbox.error_code">
- <span ng-if="scanbox.error_code == 'ITEM_NOT_CATALOGED'">
- [% l(
- 'Item "[_1]" was not found in the system. Try re-scanning the item.',
- '{{scanbox.text}}')
- %]
- </span>
</div>
</div><!-- col -->
<div class="col-md-3"></div>
service.process_checkout_events = function(events, action) {
- // For the initial checks, only look at the first event returned.
- // Usually there will only be one, but in some cases where an
- // override is required, multiple override-able events may
- // be returned.
-
+ // For the initial checks, only look at the first event
+ // returned. Usually there will only be one, but in some cases
+ // where an override is available, multiple override-able events
+ // may be returned.
var first_evt = events[0];
var payload = first_evt.payload;
var textcode = first_evt.textcode;
- console.log('checkout event: ' + js2JSON(first_evt));
+ console.log('checkout returned: ' + js2JSON(first_evt));
switch(textcode) {
// No event handlers have succeeded so far. Handle blocking
// penalties.
-
- return $q.reject(first_evt);
-
- /*
- switch(textcode) {
-
- case 'MAX_RENEWALS_REACHED' :
- displayText = dojo.string.substitute(
- localeStrings.MAX_RENEWALS, [item]);
- break;
-
- case 'ITEM_NOT_CATALOGED' :
- displayText = dojo.string.substitute(
- localeStrings.ITEM_NOT_CATALOGED, [item]);
- break;
-
- case 'OPEN_CIRCULATION_EXISTS' :
- displayText = dojo.string.substitute(
- localeStrings.OPEN_CIRCULATION_EXISTS, [item]);
-
- break;
-
- default:
- console.error('Unhandled event ' + result.textcode);
-
- if (!(displayText = this.failPartMessage(result))) {
- if (action == 'checkout' || action == 'renew') {
- displayText = dojo.string.substitute(
- localeStrings.GENERIC_CIRC_FAILURE, [item]);
- } else {
- displayText = dojo.string.substitute(
- localeStrings.UNKNOWN_ERROR, [result.textcode]);
- }
- }
+ var err_str = egCore.strings[textcode];
+ if (!err_str) {
+ if (payload && payload.fail_part) {
+ var key = "FAIL_PART_" + payload.fail_part.replace(/\./g, "_");
+ err_str = egCore.strings['FAIL_PART_' + key];
+ }
}
- */
+ if (!err_str) err_str = egCore.strings.GENERIC_CIRC_FAILURE;
+
+ return $q.reject(err_str);
}
return service;
},
changed : function($event) {
- delete $scope.scanbox.already_seen;
- delete $scope.scanbox.error_code;
- delete $scope.scanbox.error_txt;
+ delete $scope.scanbox.err_str;
if ($event.keyCode != 13) return; // submit on enter.
scanbox_handler($scope.scanbox.text);
}
if (scSvc.scanned_barcodes.indexOf(barcode) > -1) {
// avoid processing barcodes the user has already
// scanned in this session.
- $scope.scanbox.already_seen = barcode;
+ $scope.scanbox.err_str = egCore.strings.ITEM_SEEN;
return;
}
function() {
// checkout succeeded.
},
- function(evt) { // checkout failed
- if (evt) {
- $scope.scanbox.error_code = evt.textcode;
- // TODO: result.payload.fail_part
- // $scope.scanbox.error_txt;
- }
+ function(err_str) { // checkout failed
+ $scope.scanbox.err_str = err_str;
}
)['finally'](
function() {