]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/server/main/gen_offline_widgets.xul
offline time delta
[Evergreen.git] / Open-ILS / xul / staff_client / server / main / gen_offline_widgets.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 <?xml-stylesheet href="chrome://open_ils_staff_client/skin/global.css" type="text/css"?>
9 <?xml-stylesheet href="chrome://open_ils_staff_client/skin/auth.css" type="text/css"?>
10
11 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
12 <!-- LOCALIZATION -->
13 <!DOCTYPE window PUBLIC "" ""[
14         <!--#include virtual="/opac/locale/en-US/lang.dtd"-->
15 ]>
16
17 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
18 <!-- OVERLAYS -->
19 <?xul-overlay href="/xul/server/OpenILS/util_overlay.xul"?>
20
21 <window id="gen_offline_menus_win" 
22         onload="try { gen_offline_menus_init(); } catch(E) { alert(E); }"
23         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
24
25
26         <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
27         <!-- BEHAVIOR -->
28         <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};</script>
29         <scripts id="openils_util_scripts"/>
30
31         <script type="text/javascript" src="chrome://open_ils_staff_client/content/main/lang.js"/>
32         <script type="text/javascript" src="/xul/server/main/lang.js"/>
33         <script type="text/javascript" src="chrome://open_ils_staff_client/content/main/JSAN.js"/>
34         <script>
35         <![CDATA[
36
37                 function gen_offline_menus_init() {
38
39                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
40
41                         if (typeof JSAN == 'undefined') {
42                                 throw(
43                                         "The JSAN library object is missing."
44                                 );
45                         }
46                         /////////////////////////////////////////////////////////////////////////////
47
48                         JSAN.errorLevel = "die"; // none, warn, or die
49                         JSAN.addRepository('/xul/server/');
50
51                         JSAN.use('util.error'); g.error = new util.error();
52                         JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'});
53                         JSAN.use('util.network'); g.network = new util.network();
54                         JSAN.use('util.functional');
55
56                         save_object('offline_ou_list', build_ou_list());
57
58                         save_object('offline_pgt_list', build_pgt_list());
59
60                         save_object('offline_cit_list', build_cit_list());
61
62                         save_object('offline_cnct_list', build_cnct_list());
63
64                         save_object('offline_asv_list', build_asv_list());
65
66                         var server_time = g.network.request('open-ils.actor','opensrf.system.time',[]);
67                         var local_time = parseInt( new Date().getTime() / 1000 );
68
69                         var delta = server_time - local_time;
70
71                         JSAN.use('util.file'); var file = new util.file('pending_xacts');
72                         if (file._file.exists()) {
73                                 file.close();
74                         } else {
75                                 file.close();
76                                 save_object('offline_delta', delta);
77                         }
78
79                         $('placeholder').setAttribute('value','Offline interface synchronized with server.');
80
81                 }
82
83                 function $(id) {
84                         return document.getElementById(id);
85                 }
86
87                 function save_object(filename,obj) {
88                         netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
89                         JSAN.use('util.file'); var file = new util.file(filename);
90                         file.set_object(obj); file.close();
91                 }
92
93                 function build_ou_list() {
94                         return [
95                                 util.functional.map_list( 
96                                         g.data.list.aou,
97                                         function(obj) { return [ 
98                                                 obj.name() ? obj.shortname() + ' : ' + obj.name() : obj.shortname(), 
99                                                 obj.id(), 
100                                                 ( g.data.hash.aout[ obj.ou_type() ].can_have_users() == 0),
101                                                 ( g.data.hash.aout[ obj.ou_type() ].depth() ),
102                                         ]; }
103                                 ),
104                                 g.data.list.au[0].ws_ou()
105                         ];
106                 }
107
108                 function build_pgt_list() {
109                         return [
110                                 util.functional.map_list( 
111                                         g.data.list.pgt,
112                                         function(obj) { return [ 
113                                                 obj.description() ? obj.name() + ' : ' + obj.description() : obj.name(), 
114                                                 obj.id() 
115                                         ]; }
116                                 )
117                         ];
118                 }
119
120                 function build_cit_list() {
121                         return [
122                                 util.functional.map_list( 
123                                         g.data.list.cit,
124                                         function(obj) { return [ 
125                                                 obj.name(), 
126                                                 obj.id() 
127                                         ]; }
128                                 )
129                         ];
130                 }
131
132                 function build_cnct_list() {
133                         return [
134                                 util.functional.map_list( 
135                                         g.data.list.cnct,
136                                         function(obj) { return [ 
137                                                 obj.name(), 
138                                                 '[' + obj.id() + ',' + obj.circ_duration() + ']'
139                                         ]; }
140                                 )
141                         ];
142                 }
143
144                 function build_asv_list() {
145                         var obj = {};
146                         /* loop through required surveys */
147                         for (var i = 0; i < g.data.list.my_asv.length; i++) {
148                                 dump('i = ' + i + '\n');
149                                 var survey = g.data.list.my_asv[i];
150                                 obj[ survey.name() ] = {};
151                                 obj[ survey.name() ][ 'description' ] = survey.description();
152                                 obj[ survey.name() ][ 'questions' ] = [];
153
154                                 /* loop through survey questions */
155                                 for (var j = 0; j < survey.questions().length; j++) {
156                                         dump('\tj = ' + j + '\n');
157                                         var question = survey.questions()[j];
158                                         var q = {};
159                                         q[ 'question' ] = question.question();
160                                         q[ 'answers' ] = util.functional.map_list( 
161                                                 question.answers(),
162                                                 function(obj) { return [ 
163                                                         obj.answer(), 
164                                                         '[' + obj.id() + ',' 
165                                                         + obj.question() + ',' 
166                                                         + question.survey() + ']'
167                                                 ]; }
168                                         );
169                                         obj[ survey.name() ][ 'questions' ].push( q );
170                                 }
171                         }
172                         return obj;
173                 }
174
175         ]]>
176         </script>
177
178         <vbox flex="1">
179                 <label id="placeholder"/>
180         </vbox>
181 </window>
182