2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Main, Authentication Window -->
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="chrome://open_ils_staff_client/skin/auth.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="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">
26 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
28 <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};</script>
29 <scripts id="openils_util_scripts"/>
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"/>
37 function gen_offline_menus_init() {
39 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
41 if (typeof JSAN == 'undefined') {
43 "The JSAN library object is missing."
46 /////////////////////////////////////////////////////////////////////////////
48 JSAN.errorLevel = "die"; // none, warn, or die
49 JSAN.addRepository('/xul/server/');
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');
56 save_object('offline_ou_list', build_ou_list());
58 save_object('offline_pgt_list', build_pgt_list());
60 save_object('offline_cit_list', build_cit_list());
62 save_object('offline_cnct_list', build_cnct_list());
64 save_object('offline_asv_list', build_asv_list());
66 var server_time = g.network.request('open-ils.actor','opensrf.system.time',[]);
67 var local_time = parseInt( new Date().getTime() / 1000 );
69 var delta = server_time - local_time;
71 JSAN.use('util.file'); var file = new util.file('pending_xacts');
72 if (file._file.exists()) {
76 save_object('offline_delta', [ delta ]);
79 save_object('print_list_templates',g.data.print_list_templates);
81 $('placeholder').setAttribute('value','Offline interface synchronized with server.');
86 return document.getElementById(id);
89 function save_object(filename,obj) {
90 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
91 JSAN.use('util.file'); var file = new util.file(filename);
92 file.set_object(obj); file.close();
95 function build_ou_list() {
97 util.functional.map_list(
100 var sname = obj.shortname(); for (i = sname.length; i < 20; i++) sname += ' ';
102 obj.name() ? sname + ' ' + obj.name() : obj.shortname(),
104 ( g.data.hash.aout[ obj.ou_type() ].can_have_users() == 0),
105 ( g.data.hash.aout[ obj.ou_type() ].depth() * 2),
109 g.data.list.au[0].ws_ou()
113 function build_pgt_list() {
115 util.functional.map_list(
117 function(obj) { return [
118 obj.description() ? obj.name() + ' : ' + obj.description() : obj.name(),
125 function build_cit_list() {
127 util.functional.map_list(
129 function(obj) { return [
137 function build_cnct_list() {
139 util.functional.map_list(
141 function(obj) { return [
143 js2JSON( [ obj.id(), obj.circ_duration() ] )
149 function build_asv_list() {
151 /* loop through required surveys */
152 for (var i = 0; i < g.data.list.my_asv.length; i++) {
153 dump('i = ' + i + '\n');
154 var survey = g.data.list.my_asv[i];
155 obj[ survey.name() ] = {};
156 obj[ survey.name() ][ 'description' ] = survey.description();
157 obj[ survey.name() ][ 'questions' ] = [];
159 /* loop through survey questions */
160 for (var j = 0; j < survey.questions().length; j++) {
161 dump('\tj = ' + j + '\n');
162 var question = survey.questions()[j];
164 q[ 'question' ] = question.question();
165 q[ 'answers' ] = util.functional.map_list(
167 function(obj) { return [
170 + obj.question() + ','
171 + question.survey() + ']'
174 obj[ survey.name() ][ 'questions' ].push( q );
184 <label id="placeholder"/>