2 var list1; var selected1 = [];
3 var list2; var selected2 = [];
5 var max_work_log_entries;
6 var max_patron_log_entries;
10 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
11 JSAN.errorLevel = "die"; // none, warn, or die
12 JSAN.addRepository('/xul/server/');
13 JSAN.use('util.error'); error = new util.error();
14 error.sdump('D_TRACE','my_init() for main_test.xul');
16 JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve();
18 max_work_log_entries = data.hash.aous['ui.admin.work_log.max_entries'] || 20;
19 max_patron_log_entries = data.hash.aous['ui.admin.patron_log.max_entries'] || 10;
27 try { error.standard_unexpected_error_alert('admin/work_log.xul,my_init():',E); } catch(F) { alert(E); }
31 function default_focus() {
32 var btn = document.getElementById('refresh_btn');
36 function init_lists() {
38 var cmd_retrieve_item = document.getElementById('cmd_retrieve_item');
39 var cmd_retrieve_patron1 = document.getElementById('cmd_retrieve_patron1');
40 var cmd_retrieve_patron2 = document.getElementById('cmd_retrieve_patron2');
42 JSAN.use('util.list');
44 list1 = new util.list('work_action_log');
45 list2 = new util.list('work_patron_log');
47 JSAN.use('circ.util'); var columns = circ.util.work_log_columns({});
51 'on_select' : function(ev) {
52 JSAN.use('util.functional'); var sel = list1.retrieve_selection();
53 selected1 = util.functional.map_list( sel, function(o) { return JSON2js(o.getAttribute('retrieve_id')); });
54 if (selected1.length == 0) {
55 cmd_retrieve_patron1.setAttribute('disabled','true');
56 cmd_retrieve_item.setAttribute('disabled','true');
58 cmd_retrieve_patron1.setAttribute('disabled','false');
59 cmd_retrieve_item.setAttribute('disabled','false');
66 'on_select' : function(ev) {
67 JSAN.use('util.functional'); var sel = list2.retrieve_selection();
68 selected2 = util.functional.map_list( sel, function(o) { return JSON2js(o.getAttribute('retrieve_id')); });
69 if (selected2.length == 0) {
70 cmd_retrieve_patron2.setAttribute('disabled','true');
72 cmd_retrieve_patron2.setAttribute('disabled','false');
79 try { error.standard_unexpected_error_alert('admin/work_log.xul,init_lists():',E); } catch(F) { alert(E); }
83 function populate_lists() {
86 data.stash_retrieve();
88 var count = data.work_log.length;
89 var x = document.getElementById('desire_number_of_work_log_entries');
91 if (Number(x.value) < count) { count = Number(x.value); }
93 for (var i = 0; i < count; i++ ) {
94 list1.append( data.work_log[i] );
98 if (data.patron_log) {
99 var count = data.patron_log.length;
100 var y = document.getElementById('desire_number_of_patron_log_entries');
102 if (Number(y.value) < count) { count = Number(y.value); }
104 for (var i = 0; i < count; i++ ) {
105 list2.append( data.patron_log[i] );
109 try { error.standard_unexpected_error_alert('admin/work_log.xul,populate_lists():',E); } catch(F) { alert(E); }
113 function set_behavior() {
116 var x = document.getElementById('desire_number_of_work_log_entries');
118 x.setAttribute('max',max_work_log_entries);
119 if (!x.value) { x.setAttribute('value',max_work_log_entries); x.value = max_work_log_entries; }
121 var y = document.getElementById('desire_number_of_patron_log_entries');
123 y.setAttribute('max',max_patron_log_entries);
124 if (!y.value) { y.setAttribute('value',max_patron_log_entries); y.value = max_patron_log_entries; }
127 var cmd_refresh = document.getElementById('cmd_refresh');
128 var cmd_retrieve_item = document.getElementById('cmd_retrieve_item');
129 var cmd_retrieve_patron1 = document.getElementById('cmd_retrieve_patron1');
130 var cmd_retrieve_patron2 = document.getElementById('cmd_retrieve_patron2');
132 if (cmd_refresh) cmd_refresh.addEventListener('command', function() { populate_lists(); }, false);
134 function gen_patron_retrieval_func(which) {
135 return function(ev) {
137 var selected = which == 1 ? selected1 : selected2;
139 for (var i = 0; i < selected.length; i++) {
140 var patron_id = selected[i].au_id;
141 if (typeof patron_id == 'null') continue;
142 if (seen[patron_id]) continue; seen[patron_id] = true;
149 error.standard_unexpected_error_alert('Error in work_log.js, patron_retrieval_func():',E);
153 if (cmd_retrieve_patron1) cmd_retrieve_patron1.addEventListener('command', gen_patron_retrieval_func(1), false);
154 if (cmd_retrieve_patron2) cmd_retrieve_patron2.addEventListener('command', gen_patron_retrieval_func(2), false);
156 if (cmd_retrieve_item) cmd_retrieve_item.addEventListener(
160 var seen = {}; var barcodes = [];
161 for (var i = 0; i < selected1.length; i++) {
162 var barcode = selected1[i].acp_barcode;
163 if (typeof barcode == 'null') continue;
164 if (seen[barcode]) continue; seen[barcode] = true;
165 barcodes.push( barcode );
167 if (barcodes.length > 0) {
169 urls.XUL_COPY_STATUS,
171 { 'barcodes' : barcodes }
175 error.standard_unexpected_error_alert('Error in work_log.js, retrieve_item():',E);
182 try { error.standard_unexpected_error_alert('admin/work_log.xul,set_behavior():',E); } catch(F) { alert(E); }