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="wsinfo_win"
22 onload="try { wsinfo_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="/opac/common/js/OrgTree.js"/>
34 <script type="text/javascript" src="/opac/common/js/org_utils.js"/>
35 <script type="text/javascript" src="chrome://open_ils_staff_client/content/main/JSAN.js"/>
39 function wsinfo_init() {
41 document.getElementById('register_btn').disabled = true;
42 document.getElementById('wsname').disabled = true;
43 document.getElementById('wsname').value = 'Please Wait';
45 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
47 if (typeof JSAN == 'undefined') {
49 "The JSAN library object is missing."
52 /////////////////////////////////////////////////////////////////////////////
54 JSAN.errorLevel = "die"; // none, warn, or die
55 JSAN.addRepository('/xul/server/');
57 JSAN.use('util.error'); g.error = new util.error();
58 JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'});
59 JSAN.use('util.network'); g.network = new util.network();
60 JSAN.use('util.widgets');
61 JSAN.use('util.functional');
62 JSAN.use('util.fm_utils');
64 g.user = g.network.simple_request( 'FM_AU_RETRIEVE_VIA_SESSION', [ xulG.auth.session.key ] );
66 g.my_lib = g.user.home_ou();
68 g.aout_list = g.network.simple_request(
73 for (var i = 0; i < g.aout_list.length; i++) {
74 g.aout_hash[ g.aout_list[i].id() ] = g.aout_list[i];
77 var highest_org_id = g.network.simple_request(
78 'PERM_RETRIEVE_HIGHEST_ORG',
79 [ xulG.auth.session.key, g.user.id(), 'REGISTER_WORKSTATION']
81 if (highest_org_id == -1) {
82 alert('You do not have permission to register a workstation.');
86 var perm_depth = findOrgDepth( highest_org_id );
88 g.my_libs_tree = g.network.simple_request(
89 'FM_AOU_DESCENDANTS_RETRIEVE',
90 [ g.user.home_ou(), perm_depth ]
92 if (!instanceOf(g.my_libs_tree,aou)) { /* FIXME - workaround for weird descendants call result */
93 g.my_libs_tree = g.my_libs_tree[0];
95 g.my_libs = util.fm_utils.flatten_ou_branch( g.my_libs_tree );
97 g.my_libs_shortname_hash = {};
98 g.my_libs_ou_hash = {};
99 for (var i = 0; i < g.my_libs.length; i++) {
100 g.my_libs_shortname_hash[ g.my_libs[i].id() ] = g.my_libs[i].shortname();
101 g.my_libs_ou_hash[ g.my_libs[i].id() ] = function(o){return o;}(g.my_libs[i]);
104 g.tb = document.getElementById('wsname');
108 document.getElementById('register_btn').disabled = false;
109 document.getElementById('wsname').disabled = false;
110 document.getElementById('wsname').value = '';
112 document.getElementById('wsname').focus();
115 function render_menulist() {
116 var x = document.getElementById('placeholder');
117 util.widgets.remove_children( x );
119 var default_lib = g.my_lib;
120 if ( !get_bool( g.aout_hash[ g.my_libs_ou_hash[ default_lib ].ou_type() ].can_have_users() ) ) {
124 g.ml = util.widgets.make_menulist(
125 util.functional.map_list(
126 util.fm_utils.flatten_ou_branch( g.my_libs_tree ),
129 if ( get_bool( g.aout_hash[ obj.ou_type() ].can_have_users() ) ) default_lib = obj.id();
134 ( !get_bool( g.aout_hash[ obj.ou_type() ].can_have_users() ) ),
135 ( g.aout_hash[ obj.ou_type() ].depth() ),
142 x.appendChild( g.ml );
145 function register() {
147 var robj = g.network.simple_request(
149 [ xulG.auth.session.key, g.my_libs_shortname_hash[ g.ml.value ] + '-' + g.tb.value, g.ml.value ],
152 'title' : 'Override Registration Failure?',
153 'overridable_events' : [
154 1703 /* WORKSTATION_NAME_EXISTS */,
159 if (typeof robj.ilsevent != 'undefined') {
160 switch(robj.ilsevent) {
161 case -1 : g.error.standard_network_error_alert(); break;
162 case 1703 /* WORKSTATION_NAME_EXISTS */ : /* handled with override request */ break;
163 default: g.error.standard_unexpected_error_alert('Workstation Registration',robj); break;
166 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalPreferencesWrite UniversalBrowserWrite UniversalPreferencesRead UniversalBrowserRead");
167 g.data.ws_info[ xulG.auth.controller.view.server_prompt.value ] = {
168 'name' : g.my_libs_shortname_hash[ g.ml.value ] + '-' + g.tb.value,
169 'owning_lib' : g.ml.value,
170 'lib_shortname' : g.my_libs_shortname_hash[ g.ml.value ],
172 xulG.file.get('ws_info');
173 xulG.file.set_object(g.data.ws_info);
174 alert('Registration successful');
178 g.error.standard_unexpected_error_alert('Workstation Registration 2',E);
185 <vbox flex="1" style="background: #993333">
187 Enter a workstation name and library to register this client under:
190 <label value="Name" control="wsname"/>
191 <textbox id="wsname" />
194 <hbox id="placeholder"/>
195 <button id="register_btn" label="Register" accesskey="R" oncommand="register();"/>