selfcheck checkin: throbber
authorBill Erickson <berick@esilibrary.com>
Mon, 4 Feb 2013 19:19:30 +0000 (14:19 -0500)
committerBill Erickson <berick@esilibrary.com>
Mon, 4 Feb 2013 19:19:30 +0000 (14:19 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/templates/circ/selfcheck/checkin_page.tt2
Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js

index 151e6a1..5afbae4 100644 (file)
@@ -34,7 +34,7 @@
         <tbody id='oils-selfck-checkin-tbody'>
             <tr id='oils-selfck-checkin-row'>
                 <td><img class='oils-selfck-jacket' name='jacket'/></td>
-                <td name='barcode'></td>
+                <td name='barcode'><img src='http://scrapple/opac/images/progressbar_green.gif'></td>
                 <td name='title'></td>
                 <td name='author'></td>
                 <td name='due_date'></td>
index 73840a1..674232c 100644 (file)
@@ -644,6 +644,11 @@ SelfCheckManager.prototype.checkin = function(barcode) {
     var backdate = checkinBackdateInput.attr('value') || null;
     if (backdate) backdate = dojo.date.stamp.toISOString(backdate);
 
+    var row = this.checkinTemplate.cloneNode(true);
+    // put new circs at the top of the list
+    var tbody = this.checkinTbody;
+    tbody.insertBefore(row, tbody.getElementsByTagName('tr')[0]);
+
     this.checkinCopy({
         barcode : barcode, 
         void_overdues : dojo.byId('oils-selfchk-amnesty-mode').checked,
@@ -652,7 +657,7 @@ SelfCheckManager.prototype.checkin = function(barcode) {
             if (!evts.length) evts = [evts];
             dojo.forEach(evts, 
                 function(evt) {
-                    self.handleCheckinResult(barcode, evt);
+                    self.handleCheckinResult(row, barcode, evt);
                 }
             );
         }
@@ -1153,13 +1158,12 @@ SelfCheckManager.prototype.failPartMessage = function(result) {
     }
 }
 
-SelfCheckManager.prototype.displayCheckin = function(result, outcomeText) {
+SelfCheckManager.prototype.displayCheckin = function(row, result, outcomeText) {
     console.log('display checkin results ' + result);
 
     var copy = result.payload.copy;
     var record = result.payload.record;
     var circ = result.payload.circ;
-    var row = this.checkinTemplate.cloneNode(true);
 
     if(record.isbn()) {
         this.byName(row, 'jacket').setAttribute('src', 
@@ -1182,14 +1186,9 @@ SelfCheckManager.prototype.displayCheckin = function(result, outcomeText) {
         if (this.patron && this.patron.id() == circ.usr())
             this.updateCircSummary(-1);
     }
-
-
-    // put new circs at the top of the list
-    var tbody = this.checkinTbody;
-    tbody.insertBefore(row, tbody.getElementsByTagName('tr')[0]);
 }
 
-SelfCheckManager.prototype.handleCheckinResult = function(item, result) {
+SelfCheckManager.prototype.handleCheckinResult = function(row, item, result) {
     var displayText = '';
     var popup = false;  
     var sound = ''; // sound file reference
@@ -1206,13 +1205,13 @@ SelfCheckManager.prototype.handleCheckinResult = function(item, result) {
 
         displayText = dojo.string.substitute(
             localeStrings.CHECKIN_SUCCESS, [item]);
-        this.displayCheckin(result);
+        this.displayCheckin(row, result);
 
     } else if (tc == 'NO_CHANGE') {
 
         displayText = dojo.string.substitute(
             localeStrings.CHECKIN_NO_CHANGE, [item]);
-        this.displayCheckin(result);
+        this.displayCheckin(row, result);
 
     } else if (tc == 'ROUTE_ITEM') {
 
@@ -1224,15 +1223,21 @@ SelfCheckManager.prototype.handleCheckinResult = function(item, result) {
             outcomeText = tc + ' => ' + sn;
         }
 
-        this.displayCheckin(result, outcomeText);
+        this.displayCheckin(row, result, outcomeText);
 
     } else if (tc == 'ASSET_COPY_NOT_FOUND') {
 
+        // remove the in-progress row
+        row.parentNode.removeChild(row);
+
         displayText = dojo.string.substitute(
             localeStrings.ITEM_NOT_CATALOGED, [item]);
 
     } else {
 
+        // remove the in-progress row
+        row.parentNode.removeChild(row);
+
         displayText = dojo.string.substitute(
             localeStrings.UNKNOWN_ERROR, [tc]);
     }