1 function penalty_init() {
3 commonStrings = document.getElementById('commonStrings');
4 patronStrings = document.getElementById('patronStrings');
6 if (typeof JSAN == 'undefined') {
8 commonStrings.getString('common.jsan.missing')
12 JSAN.errorLevel = "die"; // none, warn, or die
13 JSAN.addRepository('..');
15 JSAN.use('OpenILS.data'); var data = new OpenILS.data(); data.stash_retrieve();
16 XML_HTTP_SERVER = data.server_unadorned;
18 JSAN.use('util.error'); var error = new util.error();
19 JSAN.use('util.network'); var net = new util.network();
20 JSAN.use('patron.util'); JSAN.use('util.list'); JSAN.use('util.functional'); JSAN.use('util.widgets');
22 var list = new util.list( 'ausp_list' );
25 'columns' : patron.util.ausp_columns({}),
26 'map_row_to_columns' : patron.util.std_map_row_to_columns(),
27 'retrieve_row' : function(params) {
28 params.row_node.setAttribute('retrieve_id',params.row.my.ausp.id());
29 params.on_retrieve(params.row);
32 'on_select' : function(ev) {
33 var sel = list.retrieve_selection();
34 var ids = util.functional.map_list( sel, function(o) { return JSON2js( o.getAttribute('retrieve_id') ); } );
36 document.getElementById('cmd_remove_penalty').setAttribute('disabled','false');
38 document.getElementById('cmd_remove_penalty').setAttribute('disabled','true');
45 for (var i = 0; i < xulG.patron.standing_penalties().length; i++) {
49 'ausp' : xulG.patron.standing_penalties()[i],
50 'csp' : xulG.patron.standing_penalties()[i].standing_penalty(),
55 rows[ xulG.patron.standing_penalties()[i].id() ] = list.append( row_params );
58 var csp_list = document.getElementById('csp_list');
59 util.widgets.remove_children(csp_list);
60 for (var i = 0; i < data.list.csp.length; i++) {
61 if (data.list.csp[i].id() > 100) {
62 var menuitem = document.createElement('menuitem'); csp_list.appendChild(menuitem);
63 menuitem.setAttribute('label',data.list.csp[i].label());
64 menuitem.setAttribute('value',data.list.csp[i].id());
65 menuitem.addEventListener(
68 var id = ev.target.getAttribute('value');
70 var note = window.prompt(patronStrings.getString('staff.patron.standing_penalty.note_prompt'),'',patronStrings.getString('staff.patron.standing_penalty.note_title'));
72 var penalty = new ausp();
73 penalty.usr( xulG.patron.id() );
75 penalty.standing_penalty( id );
76 penalty.org_unit( ses('ws_ou') );
82 var req = reqobj.getResultObject();
83 if (typeof req.ilsevent != 'undefined') {
84 error.standard_unexpected_error_alert(patronStrings.getFormattedString('staff.patron.standing_penalty.apply_error',[data.hash.csp[id].name()]),req);
87 xulG.patron.standing_penalties( xulG.patron.standing_penalties().concat( penalty ) );
92 'csp' : data.hash.csp[ penalty.standing_penalty() ],
97 rows[ req ] = list.append( row_params );
99 if (xulG && typeof xulG.refresh == 'function') {
102 document.getElementById('progress').hidden = true;
106 document.getElementById('progress').hidden = false;
114 document.getElementById('cmd_remove_penalty').addEventListener(
117 var sel = list.retrieve_selection();
118 var ids = util.functional.map_list( sel, function(o) { return JSON2js( o.getAttribute('retrieve_id') ); } );
119 if (ids.length > 0) {
120 function gen_func(id) {
123 var penalty = util.functional.find_list( xulG.patron.standing_penalties(), function(o) { return o.id() == id; } );
124 penalty.isdeleted(1);
126 var req = net.simple_request( 'FM_AUSP_REMOVE', [ ses(), penalty ] );
127 if (typeof req.ilsevent != 'undefined' || String(req) != '1') {
128 error.standard_unexpected_error_alert(patronStrings.getFormattedString('staff.patron.standing_penalty.remove_error',[id]),req);
130 var node = rows[ id ].my_node;
131 var parentNode = node.parentNode;
132 parentNode.removeChild( node );
142 for (var i = 0; i < ids.length; i++) {
143 funcs.push( gen_func(ids[i]) );
147 if (xulG && typeof xulG.refresh == 'function') {
150 document.getElementById('progress').hidden = true;
153 document.getElementById('progress').hidden = false;
154 JSAN.use('util.exec'); var exec = new util.exec();