2 var list1; var selected1 = [];
3 var list2; var selected2 = [];
5 var max_work_log_entries;
6 var max_patron_log_entries;
10 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
11 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
12 JSAN.errorLevel = "die"; // none, warn, or die
13 JSAN.addRepository('/xul/server/');
14 JSAN.use('util.error'); error = new util.error();
15 error.sdump('D_TRACE','my_init() for main_test.xul');
17 JSAN.use('OpenILS.data'); data = new OpenILS.data(); data.stash_retrieve();
19 max_work_log_entries = data.hash.aous['ui.admin.work_log.max_entries'] || 20;
20 max_patron_log_entries = data.hash.aous['ui.admin.patron_log.max_entries'] || 10;
28 try { error.standard_unexpected_error_alert('admin/work_log.xul,my_init():',E); } catch(F) { alert(E); }
32 function default_focus() {
33 var btn = document.getElementById('refresh_btn');
37 function init_lists() {
39 var cmd_retrieve_item = document.getElementById('cmd_retrieve_item');
40 var cmd_retrieve_patron1 = document.getElementById('cmd_retrieve_patron1');
41 var cmd_retrieve_patron2 = document.getElementById('cmd_retrieve_patron2');
43 JSAN.use('util.list');
45 list1 = new util.list('work_action_log');
46 list2 = new util.list('work_patron_log');
48 JSAN.use('circ.util'); var columns = circ.util.work_log_columns({}); var column_mapper_func = circ.util.std_map_row_to_columns();
52 'map_row_to_columns' : column_mapper_func,
53 'on_select' : function(ev) {
54 JSAN.use('util.functional'); var sel = list1.retrieve_selection();
55 selected1 = util.functional.map_list( sel, function(o) { return JSON2js(o.getAttribute('retrieve_id')); });
56 if (selected1.length == 0) {
57 cmd_retrieve_patron1.setAttribute('disabled','true');
58 cmd_retrieve_item.setAttribute('disabled','true');
60 cmd_retrieve_patron1.setAttribute('disabled','false');
61 cmd_retrieve_item.setAttribute('disabled','false');
68 'map_row_to_columns' : column_mapper_func,
69 'on_select' : function(ev) {
70 JSAN.use('util.functional'); var sel = list2.retrieve_selection();
71 selected2 = util.functional.map_list( sel, function(o) { return JSON2js(o.getAttribute('retrieve_id')); });
72 if (selected2.length == 0) {
73 cmd_retrieve_patron2.setAttribute('disabled','true');
75 cmd_retrieve_patron2.setAttribute('disabled','false');
82 try { error.standard_unexpected_error_alert('admin/work_log.xul,init_lists():',E); } catch(F) { alert(E); }
86 function populate_lists() {
89 data.stash_retrieve();
91 var count = data.work_log.length;
92 var x = document.getElementById('desire_number_of_work_log_entries');
94 if (Number(x.value) < count) { count = Number(x.value); }
96 for (var i = 0; i < count; i++ ) {
97 list1.append( data.work_log[i] );
101 if (data.patron_log) {
102 var count = data.patron_log.length;
103 var y = document.getElementById('desire_number_of_patron_log_entries');
105 if (Number(y.value) < count) { count = Number(y.value); }
107 for (var i = 0; i < count; i++ ) {
108 list2.append( data.patron_log[i] );
112 try { error.standard_unexpected_error_alert('admin/work_log.xul,populate_lists():',E); } catch(F) { alert(E); }
116 function set_behavior() {
119 var x = document.getElementById('desire_number_of_work_log_entries');
121 x.setAttribute('max',max_work_log_entries);
122 if (!x.value) { x.setAttribute('value',max_work_log_entries); x.value = max_work_log_entries; }
124 var y = document.getElementById('desire_number_of_patron_log_entries');
126 y.setAttribute('max',max_patron_log_entries);
127 if (!y.value) { y.setAttribute('value',max_patron_log_entries); y.value = max_patron_log_entries; }
130 var cmd_refresh = document.getElementById('cmd_refresh');
131 var cmd_retrieve_item = document.getElementById('cmd_retrieve_item');
132 var cmd_retrieve_patron1 = document.getElementById('cmd_retrieve_patron1');
133 var cmd_retrieve_patron2 = document.getElementById('cmd_retrieve_patron2');
135 if (cmd_refresh) cmd_refresh.addEventListener('command', function() { populate_lists(); }, false);
137 function gen_patron_retrieval_func(which) {
138 return function(ev) {
140 var selected = which == 1 ? selected1 : selected2;
142 for (var i = 0; i < selected.length; i++) {
143 var patron_id = selected[i].au_id;
144 if (typeof patron_id == 'null') continue;
145 if (seen[patron_id]) continue; seen[patron_id] = true;
152 error.standard_unexpected_error_alert('Error in work_log.js, patron_retrieval_func():',E);
156 if (cmd_retrieve_patron1) cmd_retrieve_patron1.addEventListener('command', gen_patron_retrieval_func(1), false);
157 if (cmd_retrieve_patron2) cmd_retrieve_patron2.addEventListener('command', gen_patron_retrieval_func(2), false);
159 if (cmd_retrieve_item) cmd_retrieve_item.addEventListener(
163 var seen = {}; var barcodes = [];
164 for (var i = 0; i < selected1.length; i++) {
165 var barcode = selected1[i].acp_barcode;
166 if (typeof barcode == 'null') continue;
167 if (seen[barcode]) continue; seen[barcode] = true;
168 barcodes.push( barcode );
170 if (barcodes.length > 0) {
172 urls.XUL_COPY_STATUS,
174 { 'barcodes' : barcodes }
178 error.standard_unexpected_error_alert('Error in work_log.js, retrieve_item():',E);
185 try { error.standard_unexpected_error_alert('admin/work_log.xul,set_behavior():',E); } catch(F) { alert(E); }