From 180d57dd05fb5875a3443a05a35bcca5db97ca9f Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 12 Aug 2009 17:19:29 +0000 Subject: [PATCH] added ability to auto-override configured checkout/renewal events at selfcheck. also, pull in JS files directly so we're not unnecessarily running opac-only code git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6@13818 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/opac/extras/selfcheck/selfcheck.js | 30 +++++++++++++++++++++--- Open-ILS/web/opac/extras/selfcheck/selfcheck.xml | 28 ++++++++++++++++++++-- 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/Open-ILS/web/opac/extras/selfcheck/selfcheck.js b/Open-ILS/web/opac/extras/selfcheck/selfcheck.js index 1cf569ae20..6549dbdc05 100644 --- a/Open-ILS/web/opac/extras/selfcheck/selfcheck.js +++ b/Open-ILS/web/opac/extras/selfcheck/selfcheck.js @@ -37,9 +37,11 @@ var orgUnit; var orgUnitAddress; var orgUnitHours; var alertOnCheckoutEvent = false; +var overrideCircEvents = []; var SET_PATRON_TIMEOUT = 'circ.selfcheck.patron_login_timeout'; var SET_BARCODE_REGEX = 'opac.barcode_regex'; var SET_ALERT_ON_CHECKOUT_EVENT = 'circ.selfcheck.alert_on_checkout_event'; +var SET_AUTO_OVERRIDE_EVENTS = 'circ.selfcheck.auto_override_checkout_events'; function selfckInit() { @@ -53,13 +55,15 @@ function selfckInit() { // fetch the relevent org-unit setting var settings = fetchBatchOrgSetting(orgUnit.id(), - [SET_PATRON_TIMEOUT, SET_BARCODE_REGEX, SET_ALERT_ON_CHECKOUT_EVENT]); + [SET_PATRON_TIMEOUT, SET_BARCODE_REGEX, SET_ALERT_ON_CHECKOUT_EVENT, SET_AUTO_OVERRIDE_EVENTS]); if(settings[SET_PATRON_TIMEOUT]) patronTimeout = parseInt(settings[SET_PATRON_TIMEOUT].value) * 1000; if(settings[SET_BARCODE_REGEX]) patronBarcodeRegex = new RegExp(settings[SET_BARCODE_REGEX].value); if(settings[SET_ALERT_ON_CHECKOUT_EVENT]) alertOnCheckoutEvent = (settings[SET_ALERT_ON_CHECKOUT_EVENT].value) ? true : false; + if(settings[SET_AUTO_OVERRIDE_EVENTS]) + overrideCircEvents = settings[SET_AUTO_OVERRIDE_EVENTS].value; if(!staff) { // should not happen when behind the proxy @@ -247,7 +251,7 @@ function selfckCheckPatronBarcode(itemBc) { /** * Sends the checkout request */ -function selfckCheckout() { +function selfckCheckout(override) { if(pendingXact) return; selfckResetTimer(); pendingXact = true; @@ -270,7 +274,7 @@ function selfckCheckout() { } var coReq = new Request( - 'open-ils.circ:open-ils.circ.checkout.full', + 'open-ils.circ:open-ils.circ.checkout.full' + ((override) ? '.override' : ''), G.user.session, {patron_id:patron.id(), copy_barcode:itemBarcode}); coReq.request.alertEvent = false; @@ -308,6 +312,26 @@ function selfckHandleCoResult(r) { } else { pendingXact = false; + + if(!evt.length) evt = [evt]; + if(overrideCircEvents.length) { + + // see if the events we received are all in the list of + // events to override + var override = true; + for(var i = 0; i < evt.length; i++) { + var match = overrideCircEvents.filter( + function(e) { return (e == evt[i].textcode); })[0]; + if(!match) { + override = false; + break; + } + } + + if(override) + return selfckCheckout(true); + } + selfckShowMsgNode(evt); $('selfck-item-barcode-input').select(); } diff --git a/Open-ILS/web/opac/extras/selfcheck/selfcheck.xml b/Open-ILS/web/opac/extras/selfcheck/selfcheck.xml index 9dba29d410..69c8761f3d 100644 --- a/Open-ILS/web/opac/extras/selfcheck/selfcheck.xml +++ b/Open-ILS/web/opac/extras/selfcheck/selfcheck.xml @@ -30,8 +30,32 @@ - - + + + + + + + + + + + + +