2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Example Template for remote xul -->
5 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
7 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
8 <?xml-stylesheet href="chrome://open_ils_staff_client/skin/global.css" type="text/css"?>
9 <?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
11 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
13 <!DOCTYPE window PUBLIC "" ""[
14 <!--#include virtual="/opac/locale/en-US/lang.dtd"-->
17 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
19 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
21 <window id="admin_transit_list_win"
22 onload="try { my_init(); } catch(E) { alert(E); }"
23 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
25 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
27 <script type="text/javascript">
28 var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};
30 <scripts id="openils_util_scripts"/>
32 <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
37 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
38 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
39 JSAN.errorLevel = "die"; // none, warn, or die
40 JSAN.addRepository('/xul/server/');
41 JSAN.use('util.error'); g.error = new util.error();
42 g.error.sdump('D_TRACE','my_init() for admin_transit_list.xul');
44 JSAN.use('circ.util');
45 var columns = circ.util.transit_columns(
47 'transit_source' : { 'hidden' : false },
48 'transit_source_send_time' : { 'hidden' : false },
49 'transit_dest_lib' : { 'hidden' : false },
50 'transit_item_barcode' : { 'hidden' : false },
51 'transit_item_title' : { 'hidden' : false },
57 'transit_source_send_time',
59 'transit_item_barcode',
61 'transit_item_author',
62 'transit_item_callnumber',
63 'transit_target_copy',
67 circ.util.hold_columns(
69 'request_time' : { 'hidden' : false },
85 JSAN.use('util.list');
86 g.list = new util.list('transit_from');
90 'map_row_to_column' : circ.util.std_map_row_to_column(),
91 'retrieve_row' : function(params) {
97 function(transit,hold) {
99 if (hold) row.my.ahr = hold;
101 g.network.simple_request(
103 [ row.my.atc.target_copy() ],
106 var r_acp = req.getResultObject();
107 if (typeof r_acp.ilsevent != 'undefined') throw(r_acp);
110 g.network.simple_request(
112 [ r_acp.call_number() ],
115 var r_acn = req2.getResultObject();
116 if (typeof r_acn.ilsevent != 'undefined') throw(r_acn);
119 if (row.my.acn.record() > 0) {
120 g.network.simple_request(
121 'MODS_SLIM_RECORD_RETRIEVE',
125 var r_mvr = req3.getResultObject();
126 if (typeof r_mvr.ilsevent != 'undefined') throw(r_mvr);
129 if (typeof params.on_retrieve == 'function') {
130 params.on_retrieve(row);
133 try { g.error.standard_unexpected_error_alert('retrieving mvr',E); } catch(F) { alert(E); }
138 if (typeof params.on_retrieve == 'function') {
139 params.on_retrieve(row);
144 try { g.error.standard_unexpected_error_alert('retrieving acn',E); } catch(F) { alert(E); }
151 try { g.error.standard_unexpected_error_alert('retrieving acp',E); } catch(F) { alert(E); }
158 try { g.error.standard_unexpected_error_alert('retrieving row',E); } catch(F) { alert(E); }
163 g.list2 = new util.list('transit_to');
167 'map_row_to_column' : circ.util.std_map_row_to_column(),
168 'retrieve_row' : function(params) {
169 var row = params.row;
174 function(transit,hold) {
175 row.my.atc = transit;
176 if (hold) row.my.ahr = hold;
178 g.network.simple_request(
180 [ row.my.atc.target_copy() ],
183 var r_acp = req.getResultObject();
184 if (typeof r_acp.ilsevent != 'undefined') throw(r_acp);
187 g.network.simple_request(
189 [ r_acp.call_number() ],
192 var r_acn = req2.getResultObject();
193 if (typeof r_acn.ilsevent != 'undefined') throw(r_acn);
196 if (row.my.acn.record() > 0) {
197 g.network.simple_request(
198 'MODS_SLIM_RECORD_RETRIEVE',
202 var r_mvr = req3.getResultObject();
203 if (typeof r_mvr.ilsevent != 'undefined') throw(r_mvr);
206 if (typeof params.on_retrieve == 'function') {
207 params.on_retrieve(row);
210 try { g.error.standard_unexpected_error_alert('retrieving mvr',E); } catch(F) { alert(E); }
215 if (typeof params.on_retrieve == 'function') {
216 params.on_retrieve(row);
221 try { g.error.standard_unexpected_error_alert('retrieving acn',E); } catch(F) { alert(E); }
227 try { g.error.standard_unexpected_error_alert('retrieving acp',E); } catch(F) { alert(E); }
234 try { g.error.standard_unexpected_error_alert('retrieving row',E); } catch(F) { alert(E); }
240 JSAN.use('util.network'); g.network = new util.network();
241 JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.stash_retrieve();
244 function get_transit(transit_id,which_list,do_this) {
245 g.network.simple_request('FM_ATC_RETRIEVE', [ ses(), transit_id ],
248 var r_atc = req2.getResultObject();
249 if (typeof r_atc.ilsevent != 'undefined') throw(r_atc);
251 if (instanceOf(r_atc,atc)) {
253 } else if (instanceOf(r_atc,ahtc)) {
254 g.network.simple_request('FM_AHR_RETRIEVE', [ ses(), r_atc.hold() ],
257 var r_ahr = req3.getResultObject();
258 if (typeof r_ahr.ilsevent != 'undefined') throw(r_ahr);
259 if (instanceOf(r_ahr[0],ahr)) {
260 do_this(r_atc,r_ahr[0]);
265 try { g.error.standard_unexpected_error_alert('retrieving hold id = ' + r_atc.hold() + ' for transit id = ' + transit_id,E); } catch(F) { alert(E); }
274 try { g.error.standard_unexpected_error_alert('retrieving transit id = ' + transit_id,E); } catch(F) { alert(E); }
280 g.network.simple_request('FM_ATC_RETRIEVE_VIA_AOU',[ ses(), g.data.list.au[ 0 ].ws_ou() ],
283 var robj = req.getResultObject();
284 if (typeof robj.ilsevent != 'undefined') throw(robj);
286 JSAN.use('util.exec');
287 var exec = new util.exec(2);
288 var exec2 = new util.exec(2);
290 function gen_list_append(id,which_list) {
293 case 0: g.list.append( { 'row' : { 'my' : { 'transit_id' : id } } } ); break;
294 case 1: g.list2.append( { 'row' : { 'my' : { 'transit_id' : id } } } ); break;
299 var rows = []; var rows2 = [];
301 for (var i = 0; i < robj.from.length; i++) {
302 //get_transit(robj.from[i], 0);
303 rows.push( gen_list_append(robj.from[i],0) );
306 for (var i = 0; i < robj.to.length; i++) {
307 //get_transit(robj.to[i], 1);
308 rows2.push( gen_list_append(robj.to[i],1) );
312 exec2.chain( rows2 );
315 try { g.error.standard_unexpected_error_alert('retrieving transits',E); } catch(F) { alert(E); }
321 try { g.error.standard_unexpected_error_alert('admin/transit_list.xul',E); } catch(F) { alert(E); }
328 <vbox flex="1" class="my_overflow">
330 <caption label="Outgoing Transits" class="shrinkable_groupbox"/>
331 <tree id="transit_from" flex="1" enableColumnDrag="true"/>
333 <splitter><grippy/></splitter>
335 <caption label="Incoming Transits" class="shrinkable_groupbox"/>
336 <tree id="transit_to" flex="1" enableColumnDrag="true"/>