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 $('placeholder').setAttribute('value','Offline interface synchronized with server.');
71 return document.getElementById(id);
74 function save_object(filename,obj) {
75 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
76 JSAN.use('util.file'); var file = new util.file(filename);
77 file.set_object(obj); file.close();
80 function build_ou_list() {
82 util.functional.map_list(
84 function(obj) { return [
85 obj.name() ? obj.shortname() + ' : ' + obj.name() : obj.shortname(),
87 ( g.data.hash.aout[ obj.ou_type() ].can_have_users() == 0),
88 ( g.data.hash.aout[ obj.ou_type() ].depth() ),
91 g.data.list.au[0].ws_ou()
95 function build_pgt_list() {
97 util.functional.map_list(
99 function(obj) { return [
100 obj.description() ? obj.name() + ' : ' + obj.description() : obj.name(),
107 function build_cit_list() {
109 util.functional.map_list(
111 function(obj) { return [
119 function build_cnct_list() {
121 util.functional.map_list(
123 function(obj) { return [
125 '[' + obj.id() + ',' + obj.circ_duration() + ']'
131 function build_asv_list() {
133 /* loop through required surveys */
134 for (var i = 0; i < g.data.list.my_asv.length; i++) {
135 dump('i = ' + i + '\n');
136 var survey = g.data.list.my_asv[i];
137 obj[ survey.name() ] = {};
138 obj[ survey.name() ][ 'description' ] = survey.description();
139 obj[ survey.name() ][ 'questions' ] = [];
141 /* loop through survey questions */
142 for (var j = 0; j < survey.questions().length; j++) {
143 dump('\tj = ' + j + '\n');
144 var question = survey.questions()[j];
146 q[ 'question' ] = question.question();
147 q[ 'answers' ] = util.functional.map_list(
149 function(obj) { return [
152 + obj.question() + ','
153 + question.survey() + ']'
156 obj[ survey.name() ][ 'questions' ].push( q );
166 <label id="placeholder"/>