Angular selfcheck WIP
authorBill Erickson <berickxx@gmail.com>
Fri, 28 Oct 2016 21:13:29 +0000 (17:13 -0400)
committerBill Erickson <berickxx@gmail.com>
Fri, 11 Aug 2017 19:20:25 +0000 (15:20 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/templates/staff/circ/selfcheck/index.tt2
Open-ILS/web/js/ui/default/staff/circ/selfcheck/app.js

index b93c2ae..1e9ba8a 100644 (file)
 <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 -->
@@ -50,16 +39,9 @@ angular.module('egCoreMod').run(['egStrings', function(s) {
     <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>
index a174233..cdc5679 100644 (file)
@@ -357,16 +357,15 @@ function($q , $timeout , $window , $location , $timeout , egCore , egConfirmDial
 
     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) {
 
@@ -389,42 +388,16 @@ function($q , $timeout , $window , $location , $timeout , egCore , egConfirmDial
         // 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;
@@ -461,9 +434,7 @@ function($scope,  $q,  $location , egCore,  scSvc) {
         },
 
         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);
         }
@@ -474,7 +445,7 @@ function($scope,  $q,  $location , egCore,  scSvc) {
         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;
         }
 
@@ -563,12 +534,8 @@ function($scope,  $q,  $location , egCore,  scSvc) {
             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() {