From: phasefx Date: Fri, 2 Jan 2009 21:17:09 +0000 (+0000) Subject: applying penalties. Need to rework how those embedded interfaces refresh and share... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=892943a9140111e513c4620d18eba62f3f67ecfb;p=Evergreen.git applying penalties. Need to rework how those embedded interfaces refresh and share patron data git-svn-id: svn://svn.open-ils.org/ILS/trunk@11734 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/xul/staff_client/chrome/content/main/constants.js b/Open-ILS/xul/staff_client/chrome/content/main/constants.js index 74360c43ce..1fe5fe35e7 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/constants.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/constants.js @@ -132,6 +132,7 @@ const api = { 'FM_AUN_DELETE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.note.delete' }, 'FM_AUS_RETRIEVE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.patron.settings.retrieve' }, 'FM_AUS_UPDATE' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.patron.settings.update' }, + 'FM_AUSP_APPLY' : { 'app' : 'open-ils.actor', 'method' : 'open-ils.actor.user.penalty.apply' }, 'FM_BRE_RETRIEVE_VIA_ID' : { 'app' : 'open-ils.cat', 'method' : 'open-ils.cat.biblio.record.metadata.retrieve', 'secure' : false }, 'FM_BRE_RETRIEVE_VIA_ID.authoritative' : { 'app' : 'open-ils.cat', 'method' : 'open-ils.cat.biblio.record.metadata.retrieve.authoritative', 'secure' : false }, 'FM_BRE_ID_SEARCH_VIA_BARCODE' : { 'app' : 'open-ils.search', 'method' : 'open-ils.search.biblio.find_by_barcode', 'secure' : false }, diff --git a/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties b/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties index c7d4e3392d..29ce617d00 100644 --- a/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties +++ b/Open-ILS/xul/staff_client/server/locale/en-US/patron.properties @@ -242,6 +242,9 @@ staff.patron.summary.retrieve.no_barcode=summary: No barcode or ID staff.patron.summary.patron_net_access=Internet staff.patron.summary.expires_on=Expires on staff.patron.summary.standing_penalty.remove=Remove +staff.patron.standing_penalty.note_prompt=Enter note to go with penalties: +staff.patron.standing_penalty.note_title=Apply Penalty +staff.patron.standing_penalty.apply_error=Error applying %1$s block/standing penalty. staff.patron.ue.uEditInit.session_no_defined=User session is not defined staff.patron.ue.uEditSaveuser.error_creating_note=Error creating patron guardian or parent note staff.patron.ue.uEditShowSearch.search=Search would be:\n%1$s diff --git a/Open-ILS/xul/staff_client/server/patron/display.js b/Open-ILS/xul/staff_client/server/patron/display.js index 217b095bf2..a8066f83e3 100644 --- a/Open-ILS/xul/staff_client/server/patron/display.js +++ b/Open-ILS/xul/staff_client/server/patron/display.js @@ -54,7 +54,7 @@ patron.display.prototype = { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); obj.summary_window.g.summary.controller.render('patron_checkouts'); - obj.summary_window.g.summary.controller.render('patron_standing'); + obj.summary_window.g.summary.controller.render('patron_standing_penalties'); if (obj.items_window) { obj.items_window.g.items.list.append( { @@ -164,7 +164,7 @@ patron.display.prototype = { 'on_list_change' : function(b) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); obj.summary_window.g.summary.controller.render('patron_checkouts'); - obj.summary_window.g.summary.controller.render('patron_standing'); + obj.summary_window.g.summary.controller.render('patron_standing_penalties'); obj.summary_window.g.summary.controller.render('patron_bill'); obj.bill_window.g.bills.refresh(true); }, @@ -286,7 +286,7 @@ patron.display.prototype = { 'on_list_change' : function(h) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); //obj.summary_window.g.summary.controller.render('patron_holds'); - //obj.summary_window.g.summary.controller.render('patron_standing'); + //obj.summary_window.g.summary.controller.render('patron_standing_penalties'); obj.refresh_all(); }, 'url_prefix' : xulG.url_prefix, @@ -363,13 +363,19 @@ patron.display.prototype = { 'cmd_standing_penalties' : [ ['command'], function() { - var vframe = obj.right_deck.reset_iframe( - urls.XUL_STANDING_PENALTIES, - {}, - { - 'patron' : obj.patron, - } - ); + function penalty_interface() { + return obj.right_deck.reset_iframe( + urls.XUL_STANDING_PENALTIES, + {}, + { + 'patron' : obj.patron, + 'refresh' : function() { + obj.refresh_all(); + } + } + ); + } + penalty_interface(); } ] } diff --git a/Open-ILS/xul/staff_client/server/patron/standing_penalties.js b/Open-ILS/xul/staff_client/server/patron/standing_penalties.js index dd8f22635b..35db818a4e 100644 --- a/Open-ILS/xul/staff_client/server/patron/standing_penalties.js +++ b/Open-ILS/xul/staff_client/server/patron/standing_penalties.js @@ -15,6 +15,7 @@ function penalty_init() { JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.stash_retrieve(); XML_HTTP_SERVER = data.server_unadorned; + JSAN.use('util.error'); var error = new util.error(); JSAN.use('util.network'); var net = new util.network(); JSAN.use('patron.util'); JSAN.use('util.list'); JSAN.use('util.functional'); @@ -39,13 +40,15 @@ function penalty_init() { ); for (var i = 0; i < data.list.csp.length; i++) { - if (data.list.csp[i].id() >= 100 ) { + if (data.list.csp[i].id() > 100 ) { + //if (true) { list.append( { 'row' : { 'my' : { 'csp' : data.list.csp[i], - 'au' : xulG.patron + 'au' : xulG.patron, + 'ausp' : util.functional.find_list( xulG.patron.standing_penalties(), function(o) { dump(js2JSON(o) + '\n'); return o.standing_penalty().id() == data.list.csp[i].id(); } ) } } } @@ -53,6 +56,50 @@ function penalty_init() { } }; + document.getElementById('cmd_apply_penalty').addEventListener( + 'command', + function() { + var sel = list.retrieve_selection(); + var ids = util.functional.map_list( sel, function(o) { return JSON2js( o.getAttribute('retrieve_id') ); } ); + if (ids.length > 0) { + + var note = window.prompt(patronStrings.getString('staff.patron.standing_penalty.note_prompt'),'',patronStrings.getString('staff.patron.standing_penalty.note_title')); + + function gen_func(id) { + return function() { + var penalty = new ausp(); + penalty.usr( xulG.patron.id() ); + penalty.isnew( 1 ); + penalty.standing_penalty( id ); + penalty.org_unit( ses('ws_ou') ); + penalty.note( note ); + var req = net.simple_request( 'FM_AUSP_APPLY', [ ses(), penalty ] ); + if (typeof req.ilsevent != 'undefined' || String(req) != '1') { + error.standard_unexpected_error_alert(patronStrings.getFormattedString('staff.patron.standing_penalty.apply_error',[data.hash.csp[id].name()]),req); + } + }; + } + + var funcs = []; + for (var i = 0; i < ids.length; i++) { + funcs.push( gen_func(ids[i]) ); + } + funcs.push( + function() { + if (xulG && typeof xulG.refresh == 'function') { + xulG.refresh(); + } + document.getElementById('progress').hidden = true; + } + ); + document.getElementById('progress').hidden = false; + JSAN.use('util.exec'); var exec = new util.exec(); + exec.chain(funcs); + } + }, + false + ); + } catch(E) { alert(E); } diff --git a/Open-ILS/xul/staff_client/server/patron/standing_penalties.xul b/Open-ILS/xul/staff_client/server/patron/standing_penalties.xul index e2a6906a29..630dd6a758 100644 --- a/Open-ILS/xul/staff_client/server/patron/standing_penalties.xul +++ b/Open-ILS/xul/staff_client/server/patron/standing_penalties.xul @@ -42,6 +42,7 @@ +