2 var local_stat_cat_entries = {};
5 mw.sdump('D_CAT','entering my_init for copy.js\n');
6 mw.sdump('D_CAT','TESTING: copy.js: ' + mw.G['main_test_variable'] + '\n');
7 mw.sdump('D_CAT','real_parentWindow: ' + real_parentWindow + '\n');
8 populate_copy_status_list('copy-status-menu','copy-status-popup','0');
9 populate_copy_location_list('shelving-location-menu','shelving-location-popup');
10 populate_lib_list_with_branch('circulating-library-menu','circulating-library-popup', mw.G.user_ou, mw.G.org_tree, true );
11 mw.sdump('D_CAT','super_dump cn_list = ' + super_dump_norecurse(cn_list) + '\n');
12 mw.sdump('D_CAT','my_init: cn_list = ' + js2JSON(cn_list) + '\n');
13 /*cn_list = fixJSON(cn_list);
14 mw.sdump('D_CAT','super_dump cn_list = ' + super_dump_norecurse(cn_list) + '\n');
15 mw.sdump('D_CAT','my_init: cn_list = ' + js2JSON(cn_list) + '\n');*/
16 var pertinent_libs = [];
17 for (var i = 0; i < cn_list.length; i++) {
19 for (var j = 0; j < cn.copies().length; j++) {
20 var cp = cn.copies()[j];
23 mw.G.org_tree_hash[ cn.owning_lib() ].shortname(),
28 pertinent_libs.push( cn.owning_lib() );
30 local_stat_cats = mw.G.asc_list;
31 populate_listbox_with_local_stat_cats_myself(
33 local_stat_cat_entries,
37 'open-ils.circ.stat_cat.asset.multirange.intersect.retrieve',
41 if (params.select_all) {
42 document.getElementById('ephemeral_listbox').selectAll();
48 function transfer_attributes(event) {
50 var items = event.target.selectedItems;
51 mw.sdump('D_CAT','selectedItems.length = ' + items.length + '\n');
52 if (items.length == 0) { return; }
58 var dump_copies = map_list(
61 var cnp = obj.getAttribute('cn_pos');
62 var cpp = obj.getAttribute('cp_pos');
63 return cn_list[cnp].copies()[cpp];
68 var dump_copies = map_flat_list(
75 for (var i in dump_copies) {
76 mw.sdump('D_CAT','\n\n\n,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_\n\n\n');
77 mw.sdump('D_CAT', js2JSON(dump_copies[i]) );
78 mw.sdump('D_CAT','\n\n\n,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_\n\n\n');
81 // Transfer values from first item to XUL
83 var cp_pos = items[0].getAttribute('cp_pos');
84 var cn_pos = items[0].getAttribute('cn_pos');
85 var cp_list = cn_list[cn_pos].copies();
86 var copy = cp_list[cp_pos];
87 if (copy.circ_lib()) document.getElementById('circulating-library-menu').value =
89 if (copy.location()) document.getElementById('shelving-location-menu').value =
91 if (copy.status()) document.getElementById('copy-status-menu').value =
93 alert('inside copy.js: transferring copy.loan_duration() to xul loan-duration-menu.\ncopy.loan_duration() = ' + copy.loan_duration() + '\ndocument.getElementById("loan-duration-menu").value = ' + document.getElementById('loan-duration-menu').value + '\n');
94 if (copy.loan_duration()) document.getElementById('loan-duration-menu').value =
96 if (copy.fine_level()) document.getElementById('fine-level-menu').value =
98 if (copy.circulate()) document.getElementById('circulate_menu').value =
100 if (copy.deposit()) document.getElementById('deposit_menu').value =
102 if (copy.deposit_amount()) document.getElementById('deposit_amount').value =
103 copy.deposit_amount();
104 if (copy.price()) document.getElementById('price').value =
106 if (copy.ref()) document.getElementById('reference_menu').value =
108 if (copy.opac_visible()) document.getElementById('opac_visible_menu').value =
111 for (var i in copy.stat_cat_entries()) {
112 var entry = copy.stat_cat_entries()[i];
113 var menuitem = document.getElementById('menuitem_stat_cat_entry_' + entry.id());
115 menuitem.parentNode.parentNode.selectedItem = menuitem;
118 mw.sdump('D_CAT','select fired\n');
122 function save_attributes() {
123 real_parentWindow.cn_list = cn_list;
124 real_parentWindow.document.getElementById('volume_add').canAdvance = true;
128 function apply_attributes() {
129 var circ_lib = document.getElementById('circulating-library-menu').value;
130 var shelving_loc = document.getElementById('shelving-location-menu').value;
131 var copy_status = document.getElementById('copy-status-menu').value;
132 var loan_duration = document.getElementById('loan-duration-menu').value;
133 var fine_level = document.getElementById('fine-level-menu').value;
134 var circulate = document.getElementById('circulate_menu').value;
135 var deposit = document.getElementById('deposit_menu').value;
136 var deposit_amount = document.getElementById('deposit_amount').value;
137 var price = document.getElementById('price').value;
138 var ref = document.getElementById('reference_menu').value;
139 var opac = document.getElementById('opac_visible_menu').value;
141 var listbox = document.getElementById('ephemeral_listbox');
142 var items = listbox.selectedItems;
143 mw.sdump('D_CAT','selectedItems.length = ' + items.length + '\n');
145 for (var i = 0; i < cn_list.length; i++) {
146 for (var j = 0; j < cn_list[i].copies().length; j++) {
148 var listitem = items[i];
149 var cn_pos = listitem.getAttribute('cn_pos');
150 var cp_pos = listitem.getAttribute('cp_pos');
151 var copy_node = cn_list[cn_pos].copies()[cp_pos];
153 var copy_node = cn_list[i].copies()[j];
154 copy_node.circ_lib( mw.G.org_tree_hash[ circ_lib ]);
155 copy_node.location( mw.G.acpl_hash[ shelving_loc ]);
156 copy_node.status( mw.G.ccs_hash[ copy_status ]);
157 alert('inside copy.js: applying loan-duration-menu.value (' + loan_duration + ') to copy ' + copy_node.barcode() + '\n');
158 copy_node.loan_duration(loan_duration);
159 copy_node.fine_level(fine_level);
160 copy_node.circulate(circulate);
161 copy_node.deposit(deposit);
162 copy_node.deposit_amount(deposit_amount);
163 copy_node.price(price);
165 copy_node.opac_visible(opac);
166 copy_node.ischanged(1);
170 mw.sdump('D_CAT','changed cn_list: ' + js2JSON(cn_list) + '\n');
173 function apply_attribute(ev) {
174 mw.sdump('D_CAT','Entering apply_attribute with element id = ');
176 if (ev.target.tagName == 'menuitem') {
177 popup_id = ev.target.parentNode.getAttribute('id');
179 popup_id = ev.target.getAttribute('id');
181 mw.sdump('D_CAT',popup_id + '\n');
182 mw.sdump('D_CAT','ev.target = ' + ev.target + ' .tagName = ' + ev.target.tagName + '\n');
184 var circ_lib = document.getElementById('circulating-library-menu').value;
185 var shelving_loc = document.getElementById('shelving-location-menu').value;
186 var copy_status = document.getElementById('copy-status-menu').value;
187 var loan_duration = document.getElementById('loan-duration-menu').value;
188 var fine_level = document.getElementById('fine-level-menu').value;
189 var circulate = document.getElementById('circulate_menu').value;
190 var deposit = document.getElementById('deposit_menu').value;
191 var deposit_amount = document.getElementById('deposit_amount').value;
192 var price = document.getElementById('price').value;
193 var ref = document.getElementById('reference_menu').value;
194 var opac = document.getElementById('opac_visible_menu').value;
196 var listbox = document.getElementById('ephemeral_listbox');
197 var items = listbox.selectedItems;
199 mw.sdump('D_CAT','selectedItems.length = ' + items.length + '\n');
201 mw.sdump('D_CAT','before cn_list: ' + js2JSON(cn_list) + '\n');
202 for (var i = 0; i < cn_list.length; i++) {
203 for (var j = 0; j < cn_list[i].copies().length; j++) {
205 var listitem = items[i];
206 var cn_pos = listitem.getAttribute('cn_pos');
207 var cp_pos = listitem.getAttribute('cp_pos');
208 var copy_node = cn_list[cn_pos].copies()[cp_pos];
210 var copy_node = cn_list[i].copies()[j];
212 mw.sdump('D_CAT','\n\n\n\n+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+\n\n\n\n');
213 mw.sdump('D_CAT','Setting copy ' + copy_node.id() + '...\n');
215 case 'circulating-library-popup':
216 mw.sdump('D_CAT','\tbefore circ_lib = ' + js2JSON(copy_node.circ_lib()) + '\n');
217 copy_node.circ_lib( mw.G.org_tree_hash[ circ_lib ] );
218 mw.sdump('D_CAT','\tafter circ_lib = ' + js2JSON(copy_node.circ_lib()) + '\n');
220 case 'shelving-location-popup':
221 mw.sdump('D_CAT','\tbefore location = ' + js2JSON(copy_node.location()) + '\n');
222 copy_node.location( mw.G.acpl_hash[ shelving_loc ] );
223 mw.sdump('D_CAT','\tafter location = ' + js2JSON(copy_node.location()) + '\n');
225 case 'copy-status-popup':
226 mw.sdump('D_CAT','\tbefore status = ' + js2JSON(copy_node.status()) + '\n');
227 copy_node.status( mw.G.ccs_hash[ copy_status ]);
228 mw.sdump('D_CAT','\tafter status = ' + js2JSON(copy_node.status()) + '\n');
230 case 'loan-duration-popup':
231 alert('inside copy.js: apply_attibute() : setting copy.loan_duration (currently ' + copy_node.loan_duration() + ') to ' + loan_duration + '\n');
232 mw.sdump('D_CAT','\tbefore loan_duration = ' + js2JSON(copy_node.loan_duration()) + '\n');
233 copy_node.loan_duration(loan_duration);
234 mw.sdump('D_CAT','\tafter loan_duration = ' + js2JSON(copy_node.loan_duration()) + '\n');
236 case 'fine-level-popup':
237 mw.sdump('D_CAT','\tbefore fine_level = ' + js2JSON(copy_node.fine_level()) + '\n');
238 copy_node.fine_level(fine_level);
239 mw.sdump('D_CAT','\tafter fine_level = ' + js2JSON(copy_node.fine_level()) + '\n');
241 case 'circulate_popup':
242 mw.sdump('D_CAT','\tbefore circulate = ' + js2JSON(copy_node.circulate()) + '\n');
243 copy_node.circulate(circulate);
244 mw.sdump('D_CAT','\tafter circulate = ' + js2JSON(copy_node.circulate()) + '\n');
246 case 'deposit_popup':
247 mw.sdump('D_CAT','\tbefore deposit = ' + js2JSON(copy_node.deposit()) + '\n');
248 copy_node.deposit(deposit);
249 mw.sdump('D_CAT','\tafter deposit = ' + js2JSON(copy_node.deposit()) + '\n');
251 case 'deposit_amount':
252 mw.sdump('D_CAT','\tbefore deposit_amount = ' + js2JSON(copy_node.deposit_amount()) + '\n');
253 copy_node.deposit_amount(deposit_amount);
254 mw.sdump('D_CAT','\tafter deposit_amount = ' + js2JSON(copy_node.deposit_amount()) + '\n');
257 mw.sdump('D_CAT','\tbefore price = ' + js2JSON(copy_node.price()) + '\n');
258 copy_node.price(price);
259 mw.sdump('D_CAT','\tafter price = ' + js2JSON(copy_node.price()) + '\n');
261 case 'reference_popup':
262 mw.sdump('D_CAT','\tbefore ref = ' + js2JSON(copy_node.ref()) + '\n');
264 mw.sdump('D_CAT','\tafter ref = ' + js2JSON(copy_node.ref()) + '\n');
266 case 'opac_visible_popup':
267 mw.sdump('D_CAT','\tbefore opac_visible = ' + js2JSON(copy_node.opac_visible()) + '\n');
268 copy_node.opac_visible(opac);
269 mw.sdump('D_CAT','\tafter opac_visible = ' + js2JSON(copy_node.opac_visible()) + '\n');
272 mw.sdump('D_CAT','\t++++++++ Unhandled.. this should be a stat_cat: ' + popup_id + ' / ' + ev.target.tagName + '\n');
273 update_stat_cat_entry(copy_node,ev.target);
276 mw.sdump('D_CAT','\n\n\n\n+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+\n\n\n\n');
277 copy_node.ischanged(1);
281 mw.sdump('D_CAT','changed cn_list: ' + js2JSON(cn_list) + '\n');
284 function update_stat_cat_entry(copy,menuitem) {
285 mw.sdump('D_CAT','\tupdate_stat_cat_entry: value = ' + menuitem.value + '\n');
286 var entries = copy.stat_cat_entries();
287 //mw.sdump('D_CAT','\n\n\ncopy = ' + js2JSON(copy) + '\n');
288 //mw.sdump('D_CAT','\n\n\ncopy.stat_cat_entries() = ' + js2JSON(copy.stat_cat_entries()) + '\n');
289 var stat_cat_id = menuitem.getAttribute('stat_cat');
290 var entry = find_attr_object_in_list(entries,'stat_cat',stat_cat_id);
292 mw.sdump('D_CAT','\tReplacing old stat_cat_entry with ');
294 entries = filter_list(
297 return (obj.id() != entry.id());
302 mw.sdump('D_CAT','\tAppending new stat_cat_entry = ');
304 mw.sdump('D_CAT',js2JSON(local_stat_cat_entries[menuitem.value]) + '\n');
305 entries.push( local_stat_cat_entries[ menuitem.value ] );
306 copy.stat_cat_entries( entries );
309 function add_to_listbox(cn_pos,cp_pos,name,callnumber,barcode) {
310 mw.sdump('D_CAT','xul: name = ' + name + ' cn = ' + callnumber + ' bc = ' + barcode + '\n');
311 var listbox = document.getElementById('ephemeral_listbox');
312 var listitem = document.createElement('listitem');
313 listitem.setAttribute('cn_pos',cn_pos);
314 listitem.setAttribute('cp_pos',cp_pos);
315 listbox.appendChild(listitem);
316 var listcell1 = document.createElement('listcell');
317 listcell1.setAttribute('label',name);
318 listitem.appendChild(listcell1);
319 var listcell2 = document.createElement('listcell');
320 listcell2.setAttribute('label',callnumber);
321 listitem.appendChild(listcell2);
322 var listcell3 = document.createElement('listcell');
323 listcell3.setAttribute('label',barcode);
324 listitem.appendChild(listcell3);