}
}
-circ.util.renew_via_barcode = function ( barcode, patron_id ) {
+circ.util.renew_via_barcode = function ( barcode, patron_id, async ) {
try {
var obj = {};
JSAN.use('util.network'); obj.network = new util.network();
var params = { barcode: barcode };
if (patron_id) params.patron = patron_id;
+ function renew_callback(req) {
+ try {
+ var renew = req.getResultObject();
+ if (typeof renew.ilsevent != 'undefined') renew = [ renew ];
+ for (var j = 0; j < renew.length; j++) {
+ switch(renew[j].ilsevent) {
+ case 0 /* SUCCESS */ : break;
+ case 5000 /* PERM_FAILURE */: break;
+ case 1212 /* PATRON_EXCEEDS_OVERDUE_COUNT */ : break;
+ case 1213 /* PATRON_BARRED */ : break;
+ case 1215 /* CIRC_EXCEEDS_COPY_RANGE */ : break;
+ case 7002 /* PATRON_EXCEEDS_CHECKOUT_COUNT */ : break;
+ case 7003 /* COPY_CIRC_NOT_ALLOWED */ : break;
+ case 7004 /* COPY_NOT_AVAILABLE */ : break;
+ case 7006 /* COPY_IS_REFERENCE */ : break;
+ case 7007 /* COPY_NEEDED_FOR_HOLD */ : break;
+ case 7008 /* MAX_RENEWALS_REACHED */ : break;
+ case 7009 /* CIRC_CLAIMS_RETURNED */ : break;
+ case 7010 /* COPY_ALERT_MESSAGE */ : break;
+ case 7013 /* PATRON_EXCEEDS_FINES */ : break;
+ default:
+ throw(renew);
+ break;
+ }
+ }
+ if (typeof async == 'function') async(renew);
+ return renew;
+ } catch(E) {
+ JSAN.use('util.error'); var error = new util.error();
+ error.standard_unexpected_error_alert('Renew Failed for ' + barcode,E);
+ return null;
+ }
+ }
+
var renew = obj.network.simple_request(
'CHECKOUT_RENEW',
[ ses(), params ],
- null,
+ async ? renew_callback : null,
{
'title' : 'Override Renew Failure?',
'overridable_events' : [
}
}
);
- if (typeof renew.ilsevent != 'undefined') renew = [ renew ];
- for (var j = 0; j < renew.length; j++) {
- switch(renew[j].ilsevent) {
- case 0 /* SUCCESS */ : break;
- case 5000 /* PERM_FAILURE */: break;
- case 1212 /* PATRON_EXCEEDS_OVERDUE_COUNT */ : break;
- case 1213 /* PATRON_BARRED */ : break;
- case 1215 /* CIRC_EXCEEDS_COPY_RANGE */ : break;
- case 7002 /* PATRON_EXCEEDS_CHECKOUT_COUNT */ : break;
- case 7003 /* COPY_CIRC_NOT_ALLOWED */ : break;
- case 7004 /* COPY_NOT_AVAILABLE */ : break;
- case 7006 /* COPY_IS_REFERENCE */ : break;
- case 7007 /* COPY_NEEDED_FOR_HOLD */ : break;
- case 7008 /* MAX_RENEWALS_REACHED */ : break;
- case 7009 /* CIRC_CLAIMS_RETURNED */ : break;
- case 7010 /* COPY_ALERT_MESSAGE */ : break;
- case 7013 /* PATRON_EXCEEDS_FINES */ : break;
- default:
- throw(renew);
- break;
- }
- }
- return renew;
+ if (! async ) return renew_callback( { 'getResultObject' : function() { return renew; } } );
} catch(E) {
JSAN.use('util.error'); var error = new util.error();
'cmd_items_print2' : [ ['command'], function() { obj.items_print(2); } ],
'cmd_items_export' : [ ['command'], function() { obj.items_export(1); } ],
'cmd_items_export2' : [ ['command'], function() { obj.items_export(2); } ],
- 'cmd_items_renew' : [ ['command'], function() { obj.items_renew(1); alert('Action complete.'); obj.retrieve(); } ],
+ 'cmd_items_renew' : [ ['command'], function() { obj.items_renew(1); /*alert('Action complete.'); obj.retrieve();*/ } ],
'cmd_items_renew_all' : [ ['command'], function() { obj.items_renew_all(); } ],
- 'cmd_items_renew2' : [ ['command'], function() { obj.items_renew(2); alert('Action complete.'); obj.retrieve(); } ],
+ 'cmd_items_renew2' : [ ['command'], function() { obj.items_renew(2); /*alert('Action complete.'); obj.retrieve();*/ } ],
'cmd_items_edit' : [ ['command'], function() { obj.items_edit(1); alert('Action complete.'); obj.retrieve(); } ],
'cmd_items_edit2' : [ ['command'], function() { obj.items_edit(2); alert('Action complete.'); obj.retrieve(); } ],
'cmd_items_mark_lost' : [ ['command'], function() { obj.items_mark_lost(1); alert('Action complete.'); obj.retrieve(); } ],
try {
obj.list.select_all();
obj.items_renew(1,true);
- setTimeout(function(){list.on_all_fleshed = null; alert('Action complete.'); obj.retrieve(); },0);
+ setTimeout(function(){list.on_all_fleshed = null; /*alert('Action complete.'); obj.retrieve();*/ },0);
} catch(E) {
obj.error.standard_unexpected_error_alert('2 All items were not likely renewed',E);
}
var r = window.confirm(msg);
if (!r) { return; }
}
+
+ var count = 0;
+
+ function gen_renew(bc) {
+ var x = document.getElementById('renew_msgs');
+ if (x) {
+ var l = document.createElement('label');
+ l.setAttribute('value','Renewing ' + bc);
+ x.appendChild(l);
+ }
+ var renew = circ.util.renew_via_barcode( barcode, obj.patron_id,
+ function(r) {
+ if ( instanceOf( r[0], 'circ' ) || (typeof r[0].ilsevent != 'undefined' && r[0].ilsevent == 0) ) {
+ l.setAttribute('value', bc + ' renewed.');
+ } else {
+ l.setAttribute('value', bc + ' not renewed. ' + r[0].desc);
+ }
+ count--;
+ if (count == 0) {
+ if (window.confirm('Action completed. Refresh list?')) obj.retrieve();
+ JSAN.use('util.widgets'); util.widgets.remove_children(x);
+ }
+ }
+ );
+ }
+
for (var i = 0; i < retrieve_ids.length; i++) {
try {
+ count++;
var barcode = retrieve_ids[i].barcode;
- //alert('Renew barcode = ' + barcode);
- var renew = circ.util.renew_via_barcode( barcode, obj.patron_id );
+ gen_renew(barcode);
} catch(E) {
obj.error.standard_unexpected_error_alert('Renew probably did not happen for barcode ' + barcode,E);