From 69d51d56ed831da5569de6befaedfdca99bac63c Mon Sep 17 00:00:00 2001 From: phasefx Date: Wed, 7 Jan 2009 17:35:13 +0000 Subject: [PATCH] apply new penalty git-svn-id: svn://svn.open-ils.org/ILS/trunk@11756 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/opac/locale/en-US/lang.dtd | 4 + .../server/patron/standing_penalties.js | 94 +++++++++++-------- .../server/patron/standing_penalties.xul | 14 ++- 3 files changed, 69 insertions(+), 43 deletions(-) diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd index 2735d6b5bb..f8767ac303 100644 --- a/Open-ILS/web/opac/locale/en-US/lang.dtd +++ b/Open-ILS/web/opac/locale/en-US/lang.dtd @@ -1151,8 +1151,12 @@ + + + + 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 d48ce3290a..afc500a8eb 100644 --- a/Open-ILS/xul/staff_client/server/patron/standing_penalties.js +++ b/Open-ILS/xul/staff_client/server/patron/standing_penalties.js @@ -17,9 +17,9 @@ function penalty_init() { 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'); + JSAN.use('patron.util'); JSAN.use('util.list'); JSAN.use('util.functional'); JSAN.use('util.widgets'); - var list = new util.list( 'csp_list' ); + var list = new util.list( 'ausp_list' ); list.init( { 'columns' : patron.util.ausp_columns({}), @@ -55,49 +55,61 @@ function penalty_init() { rows[ xulG.patron.standing_penalties()[i].id() ] = list.append( row_params ); }; - 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 csp_list = document.getElementById('csp_list'); + util.widgets.remove_children(csp_list); + for (var i = 0; i < data.list.csp.length; i++) { + if (data.list.csp[i].id() > 100) { + var menuitem = document.createElement('menuitem'); csp_list.appendChild(menuitem); + menuitem.setAttribute('label',data.list.csp[i].label()); + menuitem.setAttribute('value',data.list.csp[i].id()); + menuitem.addEventListener( + 'command', + function(ev) { + var id = ev.target.getAttribute('value'); - var note = window.prompt(patronStrings.getString('staff.patron.standing_penalty.note_prompt'),'',patronStrings.getString('staff.patron.standing_penalty.note_title')); + 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') { - error.standard_unexpected_error_alert(patronStrings.getFormattedString('staff.patron.standing_penalty.apply_error',[data.hash.csp[id].name()]),req); + 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 ); + net.simple_request( + 'FM_AUSP_APPLY', + [ ses(), penalty ], + function(reqobj) { + var req = reqobj.getResultObject(); + if (typeof req.ilsevent != 'undefined') { + error.standard_unexpected_error_alert(patronStrings.getFormattedString('staff.patron.standing_penalty.apply_error',[data.hash.csp[id].name()]),req); + } else { + penalty.id(req); + xulG.patron.standing_penalties( xulG.patron.standing_penalties().concat( penalty ) ); + var row_params = { + 'row' : { + 'my' : { + 'ausp' : penalty, + 'csp' : data.hash.csp[ penalty.standing_penalty() ], + 'au' : xulG.patron, + } + } + }; + rows[ req ] = list.append( row_params ); + } + if (xulG && typeof xulG.refresh == 'function') { + xulG.refresh(); + } + document.getElementById('progress').hidden = true; } - }; - } + ); + + document.getElementById('progress').hidden = false; + }, + false + ); + } + } - 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 - ); document.getElementById('cmd_remove_penalty').addEventListener( 'command', 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 37a81be946..17751b5b7f 100644 --- a/Open-ILS/xul/staff_client/server/patron/standing_penalties.xul +++ b/Open-ILS/xul/staff_client/server/patron/standing_penalties.xul @@ -34,6 +34,7 @@ + @@ -42,23 +43,32 @@ + + + + + + + - + - + + -- 2.43.2