1 var list; var error; var net; var rows; var menu_lib;
3 function $(id) { return document.getElementById(id); }
5 //// parent interfaces often call these
6 function default_focus() { $('au_list').focus(); }
7 function refresh() { populate_list(); }
10 function patrons_due_refunds_init() {
12 if (typeof JSAN == 'undefined') {
14 $('commonStrings').getString('common.jsan.missing')
18 JSAN.errorLevel = "die"; // none, warn, or die
19 JSAN.addRepository('..');
21 JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve();
23 JSAN.use('util.error'); error = new util.error();
24 JSAN.use('util.network'); net = new util.network();
25 JSAN.use('patron.util');
26 JSAN.use('util.list');
27 JSAN.use('util.money');
28 JSAN.use('util.functional');
29 JSAN.use('util.widgets');
31 dojo.require('openils.Util');
32 dojo.require('dojo.date.locale');
33 dojo.require('dojo.date.stamp');
37 $('list_actions').appendChild( list.render_list_actions() );
38 list.set_list_actions();
39 $('retrieve_patron').addEventListener('command', handle_retrieve, false);
44 var err_prefix = 'patrons_due_refundss.js -> patrons_due_refunds_init() : ';
45 if (error) error.standard_unexpected_error_alert(err_prefix,E); else alert(err_prefix + E);
49 function handle_retrieve() {
51 var sel = list.retrieve_selection();
52 var ids = util.functional.map_list( sel, function(o) { return JSON2js( o.getAttribute('retrieve_id') ); } );
55 for (var i = 0; i < ids.length; i++) {
56 var patron_id = ids[i];
57 if (typeof patron_id == 'null') continue;
58 if (seen[patron_id]) continue; seen[patron_id] = true;
66 alert('Error in admin/patrons_due_refunds.js, handle_retrieve(): ' + E);
70 function init_list() {
73 list = new util.list( 'au_list' );
76 'columns' : [].concat(
77 list.fm_columns('au',{
78 '*' : { 'hidden' : true },
79 'au_family_name' : { 'hidden' : false },
80 'au_first_given_name' : { 'hidden' : false },
81 'au_second_given_name' : { 'hidden' : false },
82 'au_barred' : { 'hidden' : false },
83 'au_dob' : { 'hidden' : false }
87 'id' : 'balance_owed', 'label' : 'Balance Owed', 'sort_type' : 'money', 'render' : function(my) {
88 return util.money.sanitize( my.balance_owed );
92 'id' : 'last_billing_activity', 'label' : 'Last Billing Activity', 'sort_type' : 'date', 'render' : function(my) {
93 JSAN.use('util.date');
94 return util.date.formatted_date( my.last_billing_activity, '%{localized}' );
98 'retrieve_row' : retrieve_row,
99 'on_select' : handle_selection
104 var err_prefix = 'patron_due_refunds.js -> init_list() : ';
105 if (error) error.standard_unexpected_error_alert(err_prefix,E); else alert(err_prefix + E);
109 function retrieve_row(params) { // callback function for fleshing rows in a list
110 params.treeitem_node.setAttribute('retrieve_id',params.row.my.au.id());
111 params.on_retrieve(params.row);
115 function handle_selection(ev) { // handler for list row selection event
116 var sel = list.retrieve_selection();
117 if (sel.length > 0) {
118 $('retrieve_patron').setAttribute('disabled','false');
120 $('retrieve_patron').setAttribute('disabled','true');
124 function populate_list() {
129 $('progress').hidden = false;
131 function onResponse(r) {
133 var robj = openils.Util.readResponse(r);
138 'balance_owed' : robj.balance_owed,
139 'last_billing_activity' : robj.last_billing_activity
143 rows[ robj.usr.id() ] = list.append( row_params );
145 alert('Error in patrons_due_refunds.js, populate_list, onResponse(): ' + E);
149 function onError(r) {
151 var robj = openils.Util.readResponse(r);
152 alert('error, robj = ' + js2JSON(robj));
154 alert('Error in patrons_due_refunds.js, populate_list, onError(): ' + E);
158 fieldmapper.standardRequest(
159 [api['FM_AU_BLOBS_WITH_NEGATIVE_BALANCE'].app, api['FM_AU_BLOBS_WITH_NEGATIVE_BALANCE'].method ],
161 params: [ses(),menu_lib],
162 onresponse : onResponse,
164 oncomplete : function() {
165 $('progress').hidden = true;
171 alert('Error in patrons_due_refunds.js, populate_list(): ' + E);
175 function render_lib_menu() {
177 var x = document.getElementById('lib_menu_placeholder');
179 util.widgets.remove_children( x );
181 JSAN.use('util.file');
182 var file = new util.file('offline_ou_list');
183 if (file._file.exists()) {
184 var list_data = file.get_object(); file.close();
185 menu_lib = x.getAttribute('value') || ses('ws_ou');
186 var ml = util.widgets.make_menulist( list_data[0], menu_lib );
187 ml.setAttribute('id','lib_menu');
192 menu_lib = ev.target.value;
193 x.setAttribute('value',ev.target.value); oils_persist(x);
199 throw('Missing offline org unit list.');
203 alert('Error in patrons_due_refunds.js, render_lib_menu(): ' + E);