]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/main/data.xul
preload/cache some files
[Evergreen.git] / Open-ILS / xul / staff_client / server / main / data.xul
1 <?xml version="1.0"?>
2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Main, Authentication Window -->
4
5 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
6 <!-- PRESENTATION -->
7 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
8 <!-- Load these just to cache them -->
9 <?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
10 <?xml-stylesheet href="/xul/server/skin/cat.css" type="text/css"?>
11 <?xml-stylesheet href="/xul/server/skin/circ.css" type="text/css"?>
12 <?xml-stylesheet href="/xul/server/skin/patron_display.css" type="text/css"?>
13 <?xml-stylesheet href="/xul/server/skin/patron_summary.css" type="text/css"?>
14 <?xml-stylesheet href="/xul/server/skin/simple_auth.css" type="text/css"?>
15
16 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
17 <!-- LOCALIZATION -->
18 <!DOCTYPE window PUBLIC "" ""[
19         <!--#include virtual="/opac/locale/en-US/lang.dtd"-->
20 ]>
21
22 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
23 <!-- OVERLAYS -->
24 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
25
26 <window id="data_win" 
27         onload="try { data_init(); } catch(E) { alert(E); }"
28         title="&staff.auth.title;"
29         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
30
31
32         <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
33         <!-- BEHAVIOR -->
34         <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};</script>
35         <scripts id="openils_util_scripts"/>
36
37         <script type="text/javascript" src="/xul/server/main/lang.js"/>
38         <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
39         <script>
40         <![CDATA[
41                 dump("entities['lang.version'] = " + entities['lang.version'] + '\n');
42
43                 function data_init() {
44
45                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
46
47                         if (typeof JSAN == 'undefined') {
48                                 throw(
49                                         "The JSAN library object is missing."
50                                 );
51                         }
52                         /////////////////////////////////////////////////////////////////////////////
53
54                         JSAN.errorLevel = "die"; // none, warn, or die
55                         JSAN.addRepository('/xul/server/');
56
57
58                         function data_progress(msg) {
59                                 try {
60                                         var x = document.getElementById('data_progress');
61                                         if (x) {
62                                                 x.appendChild( document.createTextNode( msg + ' ') );
63                                         }
64                                 } catch(E) {
65                                         dump(msg + '\n' + E);
66                                 }
67                         }
68
69
70                         // load these just so they'll get cached
71                         JSAN.use('util.exec'); data_progress('util.exec');
72                         JSAN.use('util.barcode'); data_progress('util.barcode');  
73                         JSAN.use('util.controller'); data_progress('util.controller');  
74                         JSAN.use('util.deck'); data_progress('util.deck');  
75                         JSAN.use('util.fm_utils'); data_progress('util.fm_utils');  
76                         JSAN.use('util.list'); data_progress('util.list');  
77                         JSAN.use('util.network'); data_progress('util.network'); 
78                         JSAN.use('util.sound'); data_progress('util.sound'); 
79                         JSAN.use('util.widgets'); data_progress('util.widgets');  
80                         JSAN.use('util.browser'); data_progress('util.browser');  
81                         JSAN.use('util.error'); data_progress('util.error');  
82                         JSAN.use('util.file'); data_progress('util.file'); 
83                         JSAN.use('util.functional'); data_progress('util.functional');  
84                         JSAN.use('util.money'); data_progress('util.money');  
85                         JSAN.use('util.print'); data_progress('util.print');  
86                         JSAN.use('util.text'); data_progress('util.text'); 
87                         JSAN.use('util.window'); data_progress('util.window'); 
88
89                         JSAN.use('patron.bills'); data_progress('patron.bills');  
90                         JSAN.use('patron.display'); data_progress('patron.display');  
91                         JSAN.use('patron.holds'); data_progress('patron.holds');  
92                         JSAN.use('patron.items'); data_progress('patron.items'); 
93                         JSAN.use('patron.search_form'); data_progress('patron.search_form');  
94                         JSAN.use('patron.search_result'); data_progress('patron.search_result');  
95                         JSAN.use('patron.summary'); data_progress('patron.summary'); 
96                         JSAN.use('patron.util'); data_progress('patron.util'); 
97
98                         JSAN.use('circ.checkin'); data_progress('circ.checkin');  
99                         JSAN.use('circ.checkout'); data_progress('circ.checkout');  
100                         JSAN.use('circ.copy_status'); data_progress('circ.copy_status'); 
101                         JSAN.use('circ.hold_capture'); data_progress('circ.hold_capture'); 
102                         JSAN.use('circ.in_house_use'); data_progress('circ.in_house_use');  
103                         JSAN.use('circ.util'); data_progress('circ.util'); 
104
105                         {
106                                 var x = new XMLHttpRequest();
107                                 x.open("GET",'/xul/server/circ/checkout_overlay.xul',true);
108                                 x.send(null);
109                                 data_progress('checkout_overlay.xul');
110                         }
111                         {
112                                 var x = new XMLHttpRequest();
113                                 x.open("GET",'/xul/server/circ/checkout.xul',true);
114                                 x.send(null);
115                                 data_progress('checkout.xul');
116                         }
117                         {
118                                 var x = new XMLHttpRequest();
119                                 x.open("GET",'/xul/server/patron/barcode_entry.xul',true);
120                                 x.send(null);
121                                 data_progress('barcode_entry.xul');
122                         }
123                         {
124                                 var x = new XMLHttpRequest();
125                                 x.open("GET",'/xul/server/util/fancy_prompt.xul',true);
126                                 x.send(null);
127                                 data_progress('fancy_prompt.xul');
128                         }
129                         {
130                                 var x = new XMLHttpRequest();
131                                 x.open("GET",'/xul/server/circ/checkin_overlay.xul',true);
132                                 x.send(null);
133                                 data_progress('checkin_overlay.xul');
134                         }
135                         {
136                                 var x = new XMLHttpRequest();
137                                 x.open("GET",'/xul/server/circ/checkin.xul',true);
138                                 x.send(null);
139                                 data_progress('checkin.xul');
140                         }
141                         {
142                                 var x = new XMLHttpRequest();
143                                 x.open("GET",'/xul/server/circ/circ_brief.xul',true);
144                                 x.send(null);
145                                 data_progress('circ_brief.xul');
146                         }
147                         {
148                                 var x = new XMLHttpRequest();
149                                 x.open("GET",'/xul/server/circ/circ_summary.xul',true);
150                                 x.send(null);
151                                 data_progress('circ_summary.xul');
152                         }
153                         {
154                                 var x = new XMLHttpRequest();
155                                 x.open("GET",'/xul/server/circ/copy_status.xul',true);
156                                 x.send(null);
157                                 data_progress('copy_status.xul');
158                         }
159                         {
160                                 var x = new XMLHttpRequest();
161                                 x.open("GET",'/xul/server/circ/copy_status_overlay.xul',true);
162                                 x.send(null);
163                                 data_progress('copy_status_overlay.xul');
164                         }
165
166
167                         // ----
168
169                         JSAN.use('OpenILS.data');
170                         g.data = new OpenILS.data()
171                         g.data.on_error = xulG.auth.logoff;
172                         g.data.entities = entities;
173                         g.data.stash('entities');
174
175                         g.data.session = {};
176                         g.data.session.key = xulG.auth.session.key;
177                         g.data.session.authtime = xulG.auth.session.authtime;
178                         g.data.stash('session');
179                         g.data.on_complete = function () {
180
181                                 g.data.stash('list','hash','tree','temp','cached_request');
182
183                                 setInterval(
184                                         function() {
185                                                 try {
186                                                         var remove_me = [];
187                                                         var n = Number( new Date() );
188                                                         for (var i in g.data.cached_request) {
189                                                                 if (g.data.cached_request[i].expire_time < n && g.data.cached_request[i].status != 'pending') remove_me.push(i);
190                                                         }
191                                                         dump('trimming ' + remove_me.length + ' requests from cache\n');
192                                                         for (var i in remove_me) delete g.data.cached_request[i];
193                                                 } catch(E) {
194                                                         alert(E);
195                                                 }
196                                         }, 180000
197                                 );
198
199                                 g.data._debug_stash();
200
201                                 document.getElementById('iframe').setAttribute(
202                                         'src',
203                                         urls.XUL_OFFLINE_GENERATE_WIDGETS       
204                                 );
205
206                                 document.getElementById('caption').setAttribute('label','Data loaded.');
207
208                                 xulG.window.open(urls.XUL_MENU_FRAME
209                                         + '?server='+window.escape(xulG.url),
210                                         'main'+xulG.window.window_name_increment(),'chrome,resizable'
211                                 );
212
213                         }
214
215                         g.data.init();
216         
217                         g.data.init_observer_functions();
218
219                 }
220         ]]>
221         </script>
222
223         <groupbox id="data_groupbox" flex="1" class="my_overflow"> 
224                 <caption id="caption" label="Loading data..."/> 
225                 <description id="data_progress"/>
226                 <iframe id="iframe" />
227         </groupbox>
228
229 </window>
230