From 0821efb912adcec4d04a58cc219e37f86b36a0b3 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 17 Nov 2009 15:45:13 +0000 Subject: [PATCH] Plugged in the summary data in the sidebar. Kicked off the nls file git-svn-id: svn://svn.open-ils.org/ILS/trunk@14940 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../web/js/dojo/openils/circ/nls/selfcheck.js | 8 ++ .../js/ui/default/circ/selfcheck/selfcheck.js | 123 +++++++++++++++++- .../default/circ/selfcheck/circ_page.tt2 | 19 ++- .../templates/default/circ/selfcheck/main.tt2 | 4 +- 4 files changed, 137 insertions(+), 17 deletions(-) create mode 100644 Open-ILS/web/js/dojo/openils/circ/nls/selfcheck.js diff --git a/Open-ILS/web/js/dojo/openils/circ/nls/selfcheck.js b/Open-ILS/web/js/dojo/openils/circ/nls/selfcheck.js new file mode 100644 index 0000000000..53aab3871c --- /dev/null +++ b/Open-ILS/web/js/dojo/openils/circ/nls/selfcheck.js @@ -0,0 +1,8 @@ +{ + 'TOTAL_ITEMS_SESSION' : "Total items this session: ${0}.", + 'TOTAL_ITEMS_ACCOUNT' : "Total items on account: ${0}.", + 'HOLDS_READY_FOR_PICKUP' : "You have ${0} item(s) ready for pickup.", + 'TOTAL_HOLDS' : "You have ${0} total holds.", + 'TOTAL_FINES_ACCOUNT' : "Total fines on account: $${0}." +} + diff --git a/Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js b/Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js index 0921dcd7a3..2405c55d86 100644 --- a/Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js +++ b/Open-ILS/web/js/ui/default/circ/selfcheck/selfcheck.js @@ -3,6 +3,10 @@ dojo.require('openils.Util'); dojo.require('openils.User'); dojo.require('openils.Event'); +dojo.requireLocalization('openils.circ', 'selfcheck'); +var localeStrings = dojo.i18n.getLocalization('openils.circ', 'selfcheck'); + + const SET_BARCODE_REGEX = 'opac.barcode_regex'; const SET_PATRON_TIMEOUT = 'circ.selfcheck.patron_login_timeout'; const SET_ALERT_ON_CHECKOUT_EVENT = 'circ.selfcheck.alert_on_checkout_event'; @@ -105,7 +109,6 @@ SelfCheckManager.prototype.drawLoginPage = function() { * Login the patron. */ SelfCheckManager.prototype.loginPatron = function(barcode, passwd) { - console.log('loginPatron: ' + barcode); if(this.orgSettings[SET_PATRON_PASSWORD_REQUIRED]) { @@ -168,13 +171,10 @@ SelfCheckManager.prototype.updateScanBox = function(args) { dojo.byId('oils-selfck-scan-text').innerHTML = args.msg; if(selfckScanBox._lastHandler && (args.handler || args.clearHandler)) { - console.log('disconnecting ' + selfckScanBox._lastHandler); dojo.disconnect(selfckScanBox._lastHandler); } if(args.handler) { - console.log('updating scan box with ['+args.msg+'] and handler ' + args.handler); - selfckScanBox._lastHandler = dojo.connect( selfckScanBox, 'onKeyDown', @@ -205,6 +205,121 @@ SelfCheckManager.prototype.drawCircPage = function() { this.circTbody = dojo.byId('oils-selfck-circ-tbody'); if(!this.circTemplate) this.circTemplate = this.circTbody.removeChild(dojo.byId('oils-selfck-circ-row')); + + // items out, holds, and fines summaries + + // fines summary + fieldmapper.standardRequest( + ['open-ils.actor', 'open-ils.actor.user.fines.summary'], + { async : true, + params : [this.authtoken, this.patron.id()], + oncomplete : function(r) { + var summary = openils.Util.readResponse(r); + dojo.byId('oils-selfck-fines-total').innerHTML = + dojo.string.substitute( + localeStrings.TOTAL_FINES_ACCOUNT, + [summary.balance_owed()] + ); + } + } + ); + + // items out summary + + this.updateHoldsSummary(); + this.updateCircSummary(); +} + +SelfCheckManager.prototype.updateHoldsSummary = function(decrement) { + + + var self = this; + var oncomplete = function() { + dojo.byId('oils-selfck-holds-total').innerHTML = + dojo.string.substitute( + localeStrings.TOTAL_HOLDS, + [self.holdsSummary.total] + ); + + dojo.byId('oils-selfck-holds-ready').innerHTML = + dojo.string.substitute( + localeStrings.HOLDS_READY_FOR_PICKUP, + [self.holdsSummary.ready] + ); + }; + + if(!this.holdsSummary) { + fieldmapper.standardRequest( + ['open-ils.circ', 'open-ils.circ.holds.user_summary'], + { async : true, + params : [this.authtoken, this.patron.id()], + oncomplete : function(r) { + var summary = openils.Util.readResponse(r); + self.holdsSummary = {}; + self.holdsSummary.ready = Number(summary['4']); + self.holdsSummary.total = 0; + for(var i in summary) + self.holdsSummary.total += Number(summary[i]); + oncomplete(); + } + } + ); + } else { + + if(this.decrement) + this.holdsSummary.ready -= 1; + + oncomplete(); + } +} + + +SelfCheckManager.prototype.updateCircSummary = function(increment) { + + var self = this; + var oncomplete = function() { + dojo.byId('oils-selfck-circ-account-total').innerHTML = + dojo.string.substitute( + localeStrings.TOTAL_ITEMS_ACCOUNT, + [self.circSummary.total] + ); + + dojo.byId('oils-selfck-circ-session-total').innerHTML = + dojo.string.substitute( + localeStrings.TOTAL_ITEMS_SESSION, + [self.circSummary.session] + ); + } + + if(this.circSummary) { + + if(increment) { + // local checkout occurred. Add to the total and the session. + this.circSummary.total += 1; + this.circSummary.session += 1; + } + + oncomplete(); + + } else { + // fetch the circ summary for the patron + var summary = fieldmapper.standardRequest( + ['open-ils.actor', 'open-ils.actor.user.checked_out.count'], + { + async : true, + params : [this.authtoken, this.patron.id()], + oncomplete : function(r) { + var summary = openils.Util.readResponse(r); + self.circSummary = { + total : Number(summary.out) + Number(summary.overdue), + overdue : Number(summary.overdue), + session : 0 + } + oncomplete(); + } + } + ); + } } diff --git a/Open-ILS/web/templates/default/circ/selfcheck/circ_page.tt2 b/Open-ILS/web/templates/default/circ/selfcheck/circ_page.tt2 index 6461b1a906..8c9c3ba887 100644 --- a/Open-ILS/web/templates/default/circ/selfcheck/circ_page.tt2 +++ b/Open-ILS/web/templates/default/circ/selfcheck/circ_page.tt2 @@ -7,7 +7,7 @@ Title Author Due Date - Renewal Left + Renewals Left Type @@ -31,20 +31,19 @@
Items Checked Out -
-
Total items this session: FOO
-
Total items on account: BAR
-
+
+
- Holds Ready for Pickup -
You have FOO items ready for pickup
-
For mor information, see Hold Details
+ Holds +
+
+
Hold Details
Fines -
Total fines on account: $FOO
-
Pay fines with Credit Card
+
+
Pay fines
diff --git a/Open-ILS/web/templates/default/circ/selfcheck/main.tt2 b/Open-ILS/web/templates/default/circ/selfcheck/main.tt2 index 1fd3596ef8..abda7c2b88 100644 --- a/Open-ILS/web/templates/default/circ/selfcheck/main.tt2 +++ b/Open-ILS/web/templates/default/circ/selfcheck/main.tt2 @@ -9,9 +9,7 @@
-
- Please log in with your library barcode. -
+
-- 2.43.2