]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/xul/staff_client/server/main/data.xul
toward a singleton for OpenILS.data
[working/Evergreen.git] / Open-ILS / xul / staff_client / server / main / data.xul
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Main, Authentication Window -->
4 <!--
5  vim:noet:sw=4:ts=4:
6 -->
7
8 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
9 <!-- PRESENTATION -->
10 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
11 <!-- Load these just to cache them -->
12 <?xml-stylesheet href="/xul/server/skin/global.css" type="text/css"?>
13 <?xml-stylesheet href="/xul/server/skin/cat.css" type="text/css"?>
14 <?xml-stylesheet href="/xul/server/skin/circ.css" type="text/css"?>
15 <?xml-stylesheet href="/xul/server/skin/patron_display.css" type="text/css"?>
16 <?xml-stylesheet href="/xul/server/skin/patron_summary.css" type="text/css"?>
17 <?xml-stylesheet href="/xul/server/skin/simple_auth.css" type="text/css"?>
18
19
20 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
21 <!-- LOCALIZATION -->
22 <!DOCTYPE window PUBLIC "" ""[
23     <!--#include virtual="/opac/locale/${locale}/lang.dtd"-->
24 ]>
25
26 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
27 <!-- OVERLAYS -->
28 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
29
30 <window id="data_win" 
31     onload="try { data_init(); } catch(E) { alert(E); }"
32     title="&staff.auth.title;"
33     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
34
35
36     <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
37     <!-- BEHAVIOR -->
38     <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};</script>
39     <scripts id="openils_util_scripts"/>
40
41     <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
42     <script>
43     <![CDATA[
44
45         function data_init() {
46
47             netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
48
49             if (typeof JSAN == 'undefined') {
50                 throw(document.getElementById("commonStrings").getString('common.jsan.missing'));
51             }
52             /////////////////////////////////////////////////////////////////////////////
53
54             JSAN.errorLevel = "die"; // none, warn, or die
55             JSAN.addRepository('/xul/server/');
56
57             function cache_me(msg,how) {
58                 try {
59                     switch(how) {
60                         case 'jsan' : JSAN.use(msg); break;
61                         case 'http' :
62                             var x = new XMLHttpRequest();
63                             x.open("GET",msg,true);
64                             x.send(null);
65                         break;
66                     }
67                     dump(msg + '\n');
68                     var x = document.getElementById('data_progress');
69                     if (x) {
70                         x.appendChild( document.createTextNode( msg + ' ') );
71                     }
72                 } catch(E) {
73                     dump(msg + '\n' + E);
74                 }
75             }
76
77             // load these just so they'll get cached
78             //cache_me('/xul/server//util/exec.js','http');
79             //cache_me('/xul/server//util/barcode.js','http');  
80             //cache_me('/xul/server//util/controller.js','http');  
81             //cache_me('/xul/server//util/deck.js','http');  
82             //cache_me('/xul/server//util/fm_utils.js','http');  
83             //cache_me('/xul/server//util/list.js','http');  
84             //cache_me('/xul/server//util/network.js','http'); 
85             //cache_me('/xul/server//util/sound.js','http'); 
86             //cache_me('/xul/server//util/widgets.js','http');  
87             //cache_me('/xul/server//util/browser.js','http');  
88             //cache_me('/xul/server//util/error.js','http');  
89             //cache_me('/xul/server//util/file.js','http'); 
90             //cache_me('/xul/server//util/functional.js','http');  
91             //cache_me('/xul/server//util/money.js','http');  
92             //cache_me('/xul/server//util/print.js','http');  
93             //cache_me('/xul/server//util/text.js','http'); 
94             //cache_me('/xul/server//util/window.js','http'); 
95
96             cache_me('/xul/server/util/fancy_prompt.xul','http');
97             //cache_me('/xul/server/util/browser.xul','http');
98             //cache_me('/xul/server/util/rbrowser.xul','http');
99
100             //cache_me('/xul/server//patron/display.js','http');  
101             //cache_me('/xul/server//patron/bills.js','http');  
102             //cache_me('/xul/server//patron/holds.js','http');  
103             //cache_me('/xul/server//patron/items.js','http'); 
104             //cache_me('/xul/server//patron/search_form.js','http');  
105             //cache_me('/xul/server//patron/search_result.js','http');  
106             //cache_me('/xul/server//patron/summary.js','http'); 
107             //cache_me('/xul/server//patron/util.js','http'); 
108
109             //cache_me('/xul/server/patron/display.xul','http');  
110             //cache_me('/xul/server/patron/display_overlay.xul','http');  
111             //cache_me('/xul/server/patron/bills.xul','http');  
112             //cache_me('/xul/server/patron/bills_overlay.xul','http');  
113             //cache_me('/xul/server/patron/holds.xul','http');  
114             //cache_me('/xul/server/patron/holds_overlay.xul','http');  
115             //cache_me('/xul/server/patron/items.xul','http'); 
116             //cache_me('/xul/server/patron/items_overlay.xul','http'); 
117             //cache_me('/xul/server/patron/search_form.xul','http');  
118             //cache_me('/xul/server/patron/search_form_overlay.xul','http');  
119             //cache_me('/xul/server/patron/search_result.xul','http');  
120             //cache_me('/xul/server/patron/search_result_overlay.xul','http');  
121             //cache_me('/xul/server/patron/summary.xul','http'); 
122             //cache_me('/xul/server/patron/summary_overlay.xul','http'); 
123             //cache_me('/xul/server/patron/barcode_entry.xul','http');
124
125             //cache_me('/xul/server/patron/ue.xhtml','http');
126             //cache_me('/xul/server/admin/adminlib.js','http');
127             //cache_me('/xul/server/admin/admin.css','http');
128             //cache_me('/xul/server/patron/ue_config.js','http');
129             //cache_me('/xul/server/patron/ue_ui.js','http');
130             //cache_me('/xul/server/patron/ue.js','http');
131             //cache_me('/opac/common/js//config.js','http');
132             //cache_me('/opac/common/js/Cookie.js','http');
133             //cache_me('/opac/common/js/Cookies.js','http');
134             //cache_me('/opac/common/js/opac_utils.js','http');
135             //cache_me('/opac/common/js/init.js','http');
136             //cache_me('/opac/common/js/jscalendar/calendar-brown.css','http');
137             //cache_me('/opac/common/js/jscalendar/calendar.js','http');
138             //cache_me('/opac/common/js/jscalendar/lang/calendar-en.js','http');
139             //cache_me('/opac/common/js/jscalendar/calendar-setup.js','http');
140             //cache_me('/opac/common/js/jscalendar/img.gif','http');
141
142             //cache_me('/xul/server/skin/media/images/stop_sign.png','http');
143             //cache_me('/xul/server/skin/media/images/bad_barcode.png','http');
144             //cache_me('/xul/server/skin/media/images/grinder.gif','http');     
145             //cache_me('/xul/server/skin/media/images/patron_left_arrow.png','http');
146             //cache_me('/xul/server/skin/media/images/skull.png','http');
147             //cache_me('/xul/server/skin/media/images/tools.png','http');
148             //cache_me('/xul/server/skin/media/images/up_arrow.gif','http');
149             //cache_me('/xul/server/skin/media/images/book_question.png','http');
150             //cache_me('/xul/server/skin/media/images/down_arrow.gif','http');
151             //cache_me('/xul/server/skin/media/images/icon_delete.gif','http');
152             //cache_me('/xul/server/skin/media/images/patron_right_arrow.png','http');
153             //cache_me('/xul/server/skin/media/images/turtle.gif','http');
154             //cache_me('/xul/server/skin/media/audio/bonus.wav','http');
155             //cache_me('/xul/server/skin/media/audio/question.wav','http');
156             //cache_me('/xul/server/skin/media/audio/redalert.wav','http');
157             //cache_me('/xul/server/skin/media/audio/toggled.wav','http');
158
159             //cache_me('/xul/server//circ/checkin.js','http');  
160             //cache_me('/xul/server//circ/checkout.js','http');  
161             //cache_me('/xul/server//circ/copy_status.js','http'); 
162             //cache_me('/xul/server//circ/hold_capture.js','http'); 
163             //cache_me('/xul/server//circ/in_house_use.js','http');  
164             //cache_me('/xul/server//circ/util.js','http'); 
165
166             //cache_me('/xul/server/circ/checkout_overlay.xul','http');
167             //cache_me('/xul/server/circ/checkout.xul','http');
168             //cache_me('/xul/server/circ/checkin_overlay.xul','http');
169             //cache_me('/xul/server/circ/checkin.xul','http');
170             //cache_me('/xul/server/circ/circ_brief.xul','http');
171             //cache_me('/xul/server/circ/circ_summary.xul','http');
172             //cache_me('/xul/server/circ/copy_status.xul','http');
173             //cache_me('/xul/server/circ/copy_status_overlay.xul','http');
174
175             // ----
176
177             JSAN.use('util.error'); 
178             g.error = new util.error();
179             JSAN.use('OpenILS.data');
180             g.data = new OpenILS.data()
181
182             g.data.session = {};
183             g.data.session.key = xulG.auth.session.key;
184             g.data.session.authtime = xulG.auth.session.authtime;
185             g.data.stash('session');
186             g.data.on_error = function(E) {
187                 try {
188                     g.error.standard_unexpected_error_alert('Error during login sequence.  The client will logout after this dialog.',E);
189                     setTimeout(
190                         function() {
191                             try {
192                                 xulG.auth.logoff();
193                             } catch(E3) {
194                                 alert(E3);
195                             }
196                         }, 0
197                     );
198                 } catch(E2) {
199                     alert(E2);
200                     try { xulG.auth.logoff(); } catch(E4) { alert(E4); };
201                 }
202                 return false;
203             }
204             g.data.on_complete = function () {
205
206                 try {
207                     g.data.on_complete = null;
208                     g.data.stash('list','hash','tree','temp');
209
210                     g.data._debug_stash();
211
212                     document.getElementById('iframe').setAttribute(
213                         'src',
214                         urls.XUL_OFFLINE_GENERATE_WIDGETS    
215                     );
216
217                     document.getElementById('caption').setAttribute('label', document.getElementById('commonStrings').getString('staff.main.data.loaded'));
218
219                     g.open_menu();
220
221                 } catch(E) {
222                     alert(E);
223                 }
224             }
225
226             g.open_menu = function() {
227                 try {
228                     netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
229                     var mframe = xulG.window.open(urls.XUL_MENU_FRAME
230                         + '?server='+window.escape(xulG.url),
231                         'main'+xulG.window.window_name_increment(),'chrome,resizable'
232                     );
233                     mframe.xulG = xulG; // This is the xulG from main.js, with auth, url, and window
234                 } catch(E) {
235                     alert(E);
236                 }
237             }
238
239             g.data.init();
240     
241             g.data.init_observer_functions();
242
243         }
244     ]]>
245     </script>
246
247     <groupbox id="data_groupbox" flex="1" class="my_overflow"> 
248         <caption id="caption" label="&staff.main.data.loading;"/> 
249         <description id="data_progress"/>
250         <iframe id="iframe" />
251     </groupbox>
252
253 </window>
254