1 var data; var error; var network; var sound;
3 function $(id) { return document.getElementById(id); }
5 function default_focus() { $('cancel_btn').focus(); } // parent interfaces often call this
7 function backdate_post_checkin_init() {
10 commonStrings = $('commonStrings');
11 circStrings = $('circStrings');
13 if (typeof JSAN == 'undefined') {
15 commonStrings.getString('common.jsan.missing')
19 JSAN.errorLevel = "die"; // none, warn, or die
20 JSAN.addRepository('..');
22 JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve();
24 JSAN.use('util.error'); error = new util.error();
26 JSAN.use('util.network'); network = new util.network();
28 JSAN.use('util.sound'); sound = new util.sound();
30 JSAN.use('util.date');
32 dojo.require('openils.Util');
34 $('checkin_effective_datepicker').value = util.date.formatted_date(new Date(),'%F');
36 var x = $('circ_brief_area');
37 var circ_ids = xul_param('circ_ids',{'modal_xulG':true});
39 var d = document.createElement('description');
40 var t = document.createTextNode( $('circStrings').getFormattedString('staff.circ.backdate.circ_ids.prompt',[circ_ids.length,circ_ids.join(',')]) );
45 /* set widget behavior */
46 $('cancel_btn').addEventListener(
47 'command', function() { window.close(); }, false
49 $('apply_btn').addEventListener(
51 gen_handle_apply(circ_ids),
55 $('checkin_effective_datepicker').addEventListener(
59 if ( ev.target.dateValue > new Date() ) throw($('circStrings').getString('staff.circ.future_date'));
60 if ( ev.target.value == util.date.formatted_date(new Date(),'%F') ) {
61 $('apply_btn').disabled = true;
63 $('apply_btn').disabled = false;
66 dump('checkin:effective_date: ' + E + '\n');
67 ev.target.disabled = true;
68 ev.target.value = util.date.formatted_date(new Date(),'%F');
69 ev.target.disabled = false;
70 JSAN.use('util.sound'); var sound = new util.sound(); sound.bad();
71 $('apply_btn').disabled = true;
80 var err_prefix = 'backdate_post_checkin.js -> backdate_post_checkin_init() : ';
81 if (error) error.standard_unexpected_error_alert(err_prefix,E); else alert(err_prefix + E);
86 function gen_handle_apply(circ_ids) {
87 return function handle_apply(ev) {
89 var backdate = $('checkin_effective_datepicker').value;
90 var progressmeter = $('progress');
95 fieldmapper.standardRequest(
96 [ api.FM_CIRC_BACKDATE_BATCH.app, api.FM_CIRC_BACKDATE_BATCH.method ],
98 params: [ses(), circ_ids, backdate],
99 onresponse: function(r) {
100 idx++; progressmeter.value = Number( progressmeter.value ) + 100/circ_ids.length;
101 var result = r.recv().content();
103 bad_circs.push( { 'circ_id' : circ_ids[ idx ], 'result' : result } );
106 oncomplete: function() {
107 if (bad_circs.length > 0) {
109 alert( $('circStrings').getFormattedString('staff.circ.backdate.circ_ids.failed',[ bad_circs.length, bad_circs.join(',') ]) );
116 'backdate' : backdate,
117 'bad_circs' : bad_circs,
127 alert('Error in backdate.js, handle_apply(): ' + E);