2 <!-- Application: Evergreen Staff Client -->
3 <!-- Screen: Retrieve Patron By Barcode -->
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="/xul/server/skin/global.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="patron_barcode_entry_win"
22 onload="try { my_init(); font_helper(); } catch(E) { alert(E); }"
23 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
25 <!-- ///////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
27 <script type="text/javascript">var myPackageDir = 'open_ils_staff_client'; var IAMXUL = true; var g = {};</script>
28 <scripts id="openils_util_scripts"/>
30 <script type="text/javascript" src="/xul/server/main/JSAN.js"/>
35 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
36 if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
37 JSAN.errorLevel = "die"; // none, warn, or die
38 JSAN.addRepository('/xul/server/');
39 JSAN.use('util.error'); g.error = new util.error();
40 g.error.sdump('D_TRACE','my_init() for patron/barcode_entry.xul');
42 JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'});
44 var tb = document.getElementById('barcode_tb');
48 if (ev.keyCode == 13 || ev.keyCode == 77) {
60 if (typeof window.xulG == 'object' && typeof window.xulG.set_tab_name == 'function') {
61 if (xul_param('perm_editor')) {
62 try { window.xulG.set_tab_name('User Permission Editor'); } catch(E) { alert(E); }
64 try { window.xulG.set_tab_name('Check Out'); } catch(E) { alert(E); }
68 if (xul_param('error')) {
69 var error = xul_param('error');
74 var err_msg = "!! This software has encountered an error. Please tell your friendly " +
75 "system administrator or software developer the following:\n" + E + '\n';
76 try { g.error.sdump('D_ERROR',err_msg); } catch(E) { dump(err_msg); }
84 JSAN.use('util.sound'); var sound = new util.sound();
85 tb = document.getElementById('barcode_tb');
86 var barcode = tb.value;
88 barcode = String( barcode ).replace( /\s+/g, '' );
90 if (!barcode) { sound.bad(); add_msg('No barcode entered.'); tb.select(); tb.focus(); return; }
92 JSAN.use('util.network'); var net = new util.network();
95 document.getElementById('progress').setAttribute('hidden','false');
96 net.simple_request('PATRON_BARCODE_EXISTS',[ ses(), barcode ],
98 document.getElementById('progress').setAttribute('hidden','true');
99 tb.disabled = false; tb.select(); tb.focus(); ;
100 var robj = req.getResultObject();
101 if (typeof robj.ilsevent != 'undefined') {
103 add_msg('Problem retrieving ' + barcode + '. Please report this message: \n' + js2JSON(robj));
105 } else if (robj == 0) {
107 add_msg('Barcode ' + barcode + ' not found.');
111 if (g.data.user_org_unit_opt_in_enabled) {
112 var r = net.simple_request('USER_ORG_UNIT_OPT_IN_CHECK',[ ses(), robj ]);
113 if (typeof r.ilsevent != 'undefined') {
119 JSAN.use('patron.util');
120 var parts = patron.util.retrieve_name_via_id( ses(), robj );
122 if (0 != g.error.yns_alert(
123 'Does patron ' + parts[0] + ', ' + parts[1] + (parts[2] ? ' ' + parts[2] : '') + ' from ' + g.data.hash.aou[ parts[3] ].name() + ' (' + g.data.hash.aou[ parts[3] ].shortname() + ') consent to having their personal information shared with your library?',
124 'Patron/Library Opt-In Confirmation',
125 'Accept', 'Deny', null, 'Check here to confirm this message'
128 tb.select(); tb.focus();
131 var c = net.simple_request('USER_ORG_UNIT_OPT_IN_CREATE',[ ses(), robj ]);
132 if (typeof c.ilsevent != 'undefined') throw(r);
146 tb.select(); tb.focus();
147 g.error.standard_unexpected_error_alert('barcode_entry.xul',E);
151 function add_msg(text) {
152 var x = document.getElementById('status');
153 var d = document.createElement('description');
155 d.appendChild( document.createTextNode( text ) );
156 d.setAttribute('style','color: red');
159 function spawn(barcode) {
160 if (xul_param('perm_editor')) { spawn_perm_editor(barcode); } else { spawn_checkout(barcode); }
163 function spawn_checkout(barcode) {
165 var loc = urls.XUL_PATRON_DISPLAY; // + '?barcode=' + window.escape(barcode);
166 if (typeof window.xulG == 'object' && typeof window.xulG.set_tab == 'function') {
167 window.xulG.set_tab( loc, {}, { 'barcode' : barcode } );
169 location.href = loc + '?barcode=' + window.escape(barcode);
172 g.error.standard_unexpected_error_alert('spawning patron display',E);
176 function spawn_perm_editor(barcode) {
178 JSAN.use('patron.util'); var patron_obj = patron.util.retrieve_fleshed_au_via_barcode( ses(), barcode );
179 var loc = urls.XUL_USER_PERM_EDITOR + '?ses=' + window.escape(ses()) + '&usr=' + patron_obj.id();
180 if (typeof window.xulG == 'object' && typeof window.xulG.set_tab == 'function') {
181 window.xulG.set_tab( loc, {}, {} );
186 g.error.standard_unexpected_error_alert('spawning user perm editor',E);
191 function default_focus() { try { setTimeout( function() { document.getElementById('barcode_tb').focus(); }, 0); } catch(E) {} }
195 <vbox flex="1" class="my_overflow">
196 <groupbox orient="vertical" flex="1">
197 <caption label="Retrieve Patron" />
199 <label value="Barcode:" accesskey="B" control="barcode_tb"/>
200 <textbox id="barcode_tb" />
201 <button label="Submit" accesskey="S" oncommand="submit();"/>
203 <label value="Retrieving..." style="color: green" id="progress" hidden="true"/>