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.widgets');
55 JSAN.use('util.functional');
58 save_xml('offline_ou_list',$('placeholder'));
61 save_xml('offline_pgt_list',$('placeholder'));
64 save_xml('offline_cit_list',$('placeholder'));
66 build_cnct_menulist();
67 save_xml('offline_cnct_list',$('placeholder'));
69 util.widgets.remove_children('placeholder');
71 var label = document.createElement('label');
72 label.setAttribute('value','Offline interface synchronized with server.');
73 $('placeholder').appendChild( label );
78 return document.getElementById(id);
81 function save_xml(filename,node) {
82 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
83 JSAN.use('util.file'); var file = new util.file(filename);
85 var serializer = new XMLSerializer();
86 var xml = serializer.serializeToString(node);
88 file.write_content('truncate',xml);
92 function build_ou_menulist() {
93 var x = document.getElementById('placeholder');
94 util.widgets.remove_children( x );
96 var ml = util.widgets.make_menulist(
97 util.functional.map_list(
99 function(obj) { return [
100 obj.name() ? obj.shortname() + ' : ' + obj.name() : obj.shortname(),
102 ( g.data.hash.aout[ obj.ou_type() ].can_have_users() == 0),
103 ( g.data.hash.aout[ obj.ou_type() ].depth() ),
106 g.data.list.au[0].ws_ou()
112 function build_pgt_menulist() {
113 var x = document.getElementById('placeholder');
114 util.widgets.remove_children( x );
116 var ml = util.widgets.make_menulist(
117 util.functional.map_list(
119 function(obj) { return [
120 obj.description() ? obj.name() + ' : ' + obj.description() : obj.name(),
129 function build_cit_menulist() {
130 var x = document.getElementById('placeholder');
131 util.widgets.remove_children( x );
133 var ml = util.widgets.make_menulist(
134 util.functional.map_list(
136 function(obj) { return [
146 function build_cnct_menulist() {
147 var x = document.getElementById('placeholder');
148 util.widgets.remove_children( x );
150 var ml = util.widgets.make_menulist(
151 util.functional.map_list(
153 function(obj) { return [
155 '[' + obj.id() + ',' + obj.circ_duration() + ']'
163 function build_req_survey_interface() {
164 var x = document.getElementById('placeholder');
165 util.widgets.remove_children( x );
166 /* loop through required surveys */
167 for (var i = 0; i < g.data.list.my_asv; i++) {
168 var survey = g.data.list.my_asv[i];
169 var x_gb = document.createElementById('groupbox');
171 var x_caption = document.createElementById('caption');
172 x_caption.setAttribute('label',survey.name());
173 x_gb.appendChild(x_caption);
175 if (survey.description()) {
176 var x_desc = document.createElement('description');
178 document.createTextNode( survey.description() )
180 x_gb.appendChild(x_desc);
183 /* loop through survey questions */
184 for (var j = 0; j < survey.questions(); j++) {
185 var question = survey.questions()[j];
186 var x_desc = document.createElement('description');
188 document.createTextNode(
192 x_gb.appendChild(x_desc);
193 var x_hbox = document.createElement('hbox'); x_hbox.setAttribute('flex','1');
194 x_gb.appendChild(x_hbox);
195 var x_spacer = document.createElement('spacer'); x_spacer.setAttribute('flex','1');
196 x_hbox.appendChild(x_spacer);
197 var x_ml = util.widgets.make_menulist(
198 [ 'Choose a response...', '' ].concat(
199 util.functional.map_list(
201 function(obj) { return [
204 + obj.question() + ','
205 + question.survey() + ']'
210 x_hbox.appendChild(x_ml);
219 <hbox id="placeholder"/>