patron:
(cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/patron_items/g | sed s/PagedTree/PatronItems/g > chrome/content/evergreen/patron/patron_items_overlay.xul )
- (cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_items.dtd)
(cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/patron_search_results/g | sed s/PagedTree/PatronSearchResults/g > chrome/content/evergreen/patron/patron_search_results_overlay.xul )
+ (cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/patron_checkout_items/g | sed s/PagedTree/PatronCheckoutItems/g > chrome/content/evergreen/patron/patron_checkout_items_overlay.xul )
+ (cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_items.dtd)
(cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_search_results.dtd)
+ (cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_checkout_items.dtd)
evergreen.xpi: evergreen.jar
@echo
rm -f chrome/evergreen.jar
rm -f chrome/content/evergreen/patron/patron_items_overlay.xul chrome/locale/en-US/evergreen/patron_items.dtd
rm -f chrome/content/evergreen/patron/patron_search_results_overlay.xul chrome/locale/en-US/evergreen/patron_search_results.dtd
+ rm -f chrome/content/evergreen/patron/patron_checkout_items_overlay.xul chrome/locale/en-US/evergreen/patron_checkout_items.dtd
rm -f chrome/content/evergreen/conf/client_config.xml
rm -f chrome/content/evergreen/util/fieldmapper.js
rm -f chrome/content/evergreen/util/OrgTree.js
case 'PatronDisplayStatus' : patron_display_status_init(params); break;
case 'PatronDisplayContact' : patron_display_contact_init(params); break;
case 'PatronItems' : patron_items_init(params); break;
+ case 'PatronCheckoutItems' : patron_checkout_items_init(params); break;
}
} catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); }
case 'PatronDisplayStatus' : patron_display_status_exit(params); break;
case 'PatronDisplayContact' : patron_display_contact_exit(params); break;
case 'PatronItems' : patron_items_exit(params); break;
+ case 'PatronCheckoutItems' : patron_checkout_items_exit(params); break;
}
} catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); }
<script src="chrome://evergreen/content/patron/patron_display.js" />
<script src="chrome://evergreen/content/patron/patron_display_status.js" />
<script src="chrome://evergreen/content/patron/patron_display_contact.js" />
+ <script src="chrome://evergreen/content/patron/patron_checkout_items.js" />
<script src="chrome://evergreen/content/patron/patron_items.js" />
<script src="chrome://evergreen/content/circ/circ_utils.js" />
</apps>
sdump('D_TRACE','Loading circ_tree.js\n');
+function is_barcode_valid( barcode ) {
+
+ // consider checkdigit, length, etc.
+
+ return check_checkdigit( barcode );
+}
+
+function checkout_permit(barcode, patron_id, num_of_open_async_checkout_requests) {
+ sdump('D_CIRC_UTILS',arg_dump(arguments,{0:true,1:true,2:true}));
+ try {
+ var check = user_request(
+ 'open-ils.circ',
+ 'open-ils.circ.permit_checkout',
+ [ mw.G.auth_ses[0], barcode, patron_id, num_of_open_async_checkout_requests ]
+ )[0];
+ sdump('D_CIRC_UTILS','check = ' + js2JSON(check) + '\n');
+ return check;
+ } catch(E) {
+ handle_error(E);
+ return null;
+ }
+}
+
+function checkout_by_copy_barcode(barcode, patron_id) {
+ sdump('D_CIRC_UTILS',arg_dump(arguments,{0:true,1:true}));
+ try {
+ var check = user_request(
+ 'open-ils.circ',
+ 'open-ils.circ.checkout.barcode',
+ [ mw.G.auth_ses[0], barcode, patron_id ]
+ )[0];
+ sdump('D_CIRC_UTILS','check = ' + js2JSON(check) + '\n');
+ return check;
+ } catch(E) {
+ sdump('D_ERROR',E);
+ return null;
+ }
+}
+
function checkin_by_copy_barcode(barcode) {
sdump('D_CIRC_UTILS',arg_dump(arguments,{0:true}));
try {
<!-- main widget for paged_tree -->
<box id="PagedTree_main" flex="1" orient="vertical">
+ <hbox id="PagedTree_insert1" />
<hbox id="PagedTree_nav" name="nav"/>
+ <hbox id="PagedTree_insert2" />
<tree id="PagedTree_tree" flex="1" enableColumnDrag="true" name="tree">
<treecols id="PagedTree_columns"/>
<treechildren id="PagedTree_children" context="PagedTree_popup"/>
</tree>
+ <hbox id="PagedTree_insert3" />
</box>
<hbox id="PagedTree_nav">
--- /dev/null
+sdump('D_TRACE','Loading patron_checkout_items.js\n');
+
+function patron_checkout_items_init(p) {
+ sdump('D_PATRON_CHECKOUT_ITEMS',"TESTING: patron_checkout_items.js: " + mw.G['main_test_variable'] + '\n');
+ sdump('D_CONSTRUCTOR',arg_dump(arguments));
+
+ p.patron_checkout_items_cols = circ_cols();
+
+ p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cols' : p.patron_checkout_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } );
+ p.add_checkout_items = p.paged_tree.add_rows;
+ p.clear_checkout_items = p.paged_tree.clear_tree;
+
+ p.register_patron_checkout_items_select_callback = function (f) {
+ sdump('D_PATRON_CHECKOUT_ITEMS','p.register_patron_checkout_items_select_callback(' + f + ')\n');
+ p.paged_tree.register_select_callback( f );
+ }
+
+ p.register_flesh_patron_checkout_items_function = function (f) {
+ sdump('D_PATRON_CHECKOUT_ITEMS','p.register_flesh_patron_checkout_items_function(' + f + ')\n');
+ p.paged_tree.register_flesh_row_function( f );
+ }
+
+ p.register_context_builder = function (f) {
+ sdump('D_PATRON_CHECKOUT_ITEMS','p.register_context_builder(' + f + ')\n');
+ p.paged_tree.register_context_builder( f );
+ }
+
+ p.map_patron_checkout_items_to_cols = function (patron_checkout_items, treeitem) {
+ sdump('D_PATRON_CHECKOUT_ITEMS','p.map_patron_checkout_items_to_cols( ' + patron_checkout_items + ',' + treeitem + ')\n');
+ patron_checkout_items_tree_map_patron_checkout_items_to_cols(p, patron_checkout_items, treeitem);
+ }
+
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+ return p;
+}
+
+function patron_checkout_items_tree_map_patron_checkout_items_to_cols(p, patron_checkout_items, treeitem) {
+ sdump('D_PATRON_CHECKOUT_ITEMS',arg_dump(arguments,{1:true}));
+ sdump('D_TRACE_ENTER',arg_dump(arguments));
+ var cols = new Array();
+ for (var i = 0; i < p.patron_checkout_items_cols.length; i++) {
+ var hash = p.patron_checkout_items_cols[i];
+ sdump('D_PATRON_CHECKOUT_ITEMS','Considering ' + js2JSON(hash) + '\n');
+ var obj_string;
+ switch( hash.fm_class ) {
+ case 'acp' : obj_string = 'patron_checkout_items.copy'; break;
+ case 'circ' : obj_string = 'patron_checkout_items.circ'; break;
+ case 'mvr' : obj_string = 'patron_checkout_items.record'; break;
+ }
+ var cmd = parse_render_string( obj_string, hash.fm_field_render );
+ sdump('D_PATRON_CHECKOUT_ITEMS','cmd = ' + cmd + '\n');
+ var col = '';
+ try {
+ col = eval( cmd );
+ sdump('D_PATRON_CHECKOUT_ITEMS','eval = ' + col + '\n');
+ } catch(E) {
+ sdump('D_ERROR',js2JSON(E) + '\n');
+ }
+ cols.push( col );
+ }
+ sdump('D_PATRON_CHECKOUT_ITEMS','cols = ' + js2JSON(cols) + '\n');
+ p.paged_tree.map_cols_to_treeitem( cols, treeitem );
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+}
// gives: p.patron_items, p.redraw_patron_items
patron_display_patron_items_init(p);
+ // gives: p.patron_checkout_items, p.redraw_patron_checkout_items
+ patron_display_patron_checkout_items_init(p);
+
p.set_patron = function (au) {
return p._patron = au;
}
var idx = patron_items[i].getAttribute('record_id');
var circ = p._patron.checkouts()[ idx ].circ;
alert( js2JSON(renew_by_circ_id( circ.id() )) );
+ p.refresh();
} catch(E) {
alert(E);
}
var idx = patron_items[i].getAttribute('record_id');
var copy = p._patron.checkouts()[ idx ].copy;
alert( js2JSON(checkin_by_copy_barcode( copy.barcode() )) );
+ p.refresh();
} catch(E) {
alert(E);
}
);
}
+function patron_display_patron_checkout_items_init(p) {
+ p.patron_checkout_items = patron_checkout_items_init( { 'w' : p.w, 'node' : p.patron_checkout_items_node, 'popupset_node' : p.popupset_node, 'debug' : p.app } );
+
+ var checkouts = [];
+
+ p.attempt_checkout = function(barcode) {
+ try {
+ if (! is_barcode_valid(barcode) ) throw('Invalid Barcode');
+ var permit_check = checkout_permit( barcode, p._patron.id(), 0 );
+ if (permit_check.status == 0) {
+ var check = checkout_by_barcode( barcode, p._patron.id() );
+ if (check) {
+ checkouts.push( check );
+ p.patron_checkout_items.add_patron_checkout_items( [ checkouts.length - 1 ] );
+ }
+ } else {
+ throw(permit_check.text);
+ }
+ } catch(E) {
+ handle_error(E);
+ }
+ }
+
+ var tb = p.patron_checkout_items_node.getElementsByAttribute('id','patron_checkout_barcode_entry_textbox')[0];
+ var submit_button = p.patron_checkout_items_node.getElementsByAttribute('id','patron_checkout_submit_barcode_button')[0];
+ tb.addEventListener(
+ 'keypress',
+ function(ev) {
+ if (ev.keyCode == 13 || ev.keyCode == 77 ) { p.attempt_checkout( tb.value ); }
+ },
+ false
+ );
+ submit_button.addEventListener(
+ 'command',
+ function(ev) {
+ p.attempt_checkout( tb.value );
+ },
+ false
+ );
+
+ p.redraw_patron_checkout_items = function() {
+ p.patron_checkout_items.clear_patron_checkout_items();
+ for (var i = 0; i < checkouts.length; i++) {
+ p.patron_checkout_items.add_patron_checkout_items( [ i ] );
+ }
+ }
+
+ p.patron_checkout_items.register_patron_checkout_items_select_callback(
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing patron_checkout_items_select_callback\n');
+ var patron_checkout_items = get_list_from_tree_selection( p.patron_checkout_items.paged_tree.tree );
+ /* grab cover art for selected item? */
+ }
+ );
+ p.patron_checkout_items.register_flesh_patron_checkout_items_function(
+ function (treeitem) {
+ sdump('D_PATRON_DISPLAY','Firing flesh_patron_checkout_items_function\n');
+ var record_id = treeitem.getAttribute('record_id');
+ p.patron_checkout_items.map_patron_checkout_items_to_cols( checkouts[ record_id ], treeitem );
+ }
+ );
+ p.patron_checkout_items.register_context_builder(
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing context_builder\n');
+ empty_widget(p.patron_checkout_items.paged_tree.popup);
+ var patron_checkout_items = get_list_from_tree_selection( p.patron_checkout_items.paged_tree.tree );
+ var menuitem;
+
+ /*** CHECKIN ***/
+ menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem');
+ p.patron_checkout_items.paged_tree.popup.appendChild( menuitem );
+ menuitem.setAttribute('label',getString('circ.context_checkin'));
+ menuitem.addEventListener(
+ 'command',
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing checkin context\n');
+ var keep_these = [];
+ for (var i = 0; i < patron_checkout_items.length; i++) {
+ try {
+ var idx = patron_checkout_items[i].getAttribute('record_id');
+ var copy = checkouts[ idx ].copy;
+ var status = checkin_by_copy_barcode( copy.barcode() );
+ if (!status) { // change this to whatever it takes
+ keep_these.push( checkouts[ idx ] );
+ }
+ checkouts = keep_these;
+ alert( js2JSON( status ) );
+ p.refresh();
+ } catch(E) {
+ alert(E);
+ }
+ }
+ },
+ false
+ );
+
+ /* separator */
+ menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuseparator');
+ p.patron_checkout_items.paged_tree.popup.appendChild( menuitem );
+
+
+ /*** COPY EDITOR ***/
+ menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem');
+ p.patron_checkout_items.paged_tree.popup.appendChild( menuitem );
+ menuitem.setAttribute('label',getString('circ.context_edit'));
+ menuitem.addEventListener(
+ 'command',
+ function (ev) {
+ for (var i = 0; i < patron_checkout_items.length; i++) {
+ var idx = patron_checkout_items[i].getAttribute('record_id');
+ sdump('D_PATRON_DISPLAY','Firing copy edit context\n');
+ }
+ },
+ false
+ );
+
+ /*** OPAC ***/
+ menuitem = p.patron_checkout_items.paged_tree.w.document.createElement('menuitem');
+ p.patron_checkout_items.paged_tree.popup.appendChild( menuitem );
+ menuitem.setAttribute('label',getString('circ.context_opac'));
+ menuitem.addEventListener(
+ 'command',
+ function (ev) {
+ for (var i = 0; i < patron_checkout_items.length; i++) {
+ var idx = patron_checkout_items[i].getAttribute('record_id');
+ sdump('D_PATRON_DISPLAY','Firing opac context\n');
+ }
+ },
+ false
+ );
+
+ }
+ );
+}
+
params.app = 'PatronDisplay';
params.clamshell_node = document.getElementById('ClamShell_main');
params.patron_items_node = document.getElementById('PatronItems_main');
+ params.patron_checkout_items_node = document.getElementById('PatronCheckoutItems_main');
params.commandset_node = document.getElementById('universal_cmds');
params.popupset_node = document.getElementById('universal_popupset');
mw.focus_widget( document, 'PatronNavBar_refresh' );
+++ /dev/null
-sdump('D_TRACE','Loading patron_display_contact.js\n');
-
-function patron_display_contact_init(p) {
- sdump('D_PATRON_DISPLAY_CONTACT',"TESTING: patron_display_contact.js: " + mw.G['main_test_variable'] + '\n');
-
- if (p.app_shell) p.w.app_shell = p.app_shell;
-
- p.w.set_patron = function (au) {
- return p.w._patron = au;
- }
- p.w.display_patron = function (au) {
- if (au) p.w.set_patron(au);
- return render_fm(p.w.document, { 'au' : p.w._patron });
- };
- p.w.retrieve_patron_via_barcode = function (barcode) {
- if (!barcode) barcode = patron_get_barcode( p.w._patron );
- p.w.set_patron( retrieve_patron_by_barcode( barcode ) );
- return p.w.display_patron();
- }
- p.w.retrieve_patron_via_id = function (id) {
- p.w.set_patron( retrieve_patron_by_id( id ) );
- return p.w.display_patron();
- }
-
- consider_Timeout(
- function() {
- sdump('D_TIMEOUT','******** timeout occurred in patron_display_contact.js\n');
- if (p.patron) {
- if (typeof(p.patron) == 'object') {
- p.w.set_patron( p.patron );
- p.w.display_patron();
- } else
- p.w.retrieve_patron_via_barcode( p.patron );
- }
- }, 0
- );
-
- sdump('D_TRACE_EXIT',arg_dump(arguments));
- return;
-}
-
-
+++ /dev/null
-<?xml version="1.0"?>
-<!-- Clamlication: Evergreen Staff Client -->
-
-<!-- Localization -->
-<!DOCTYPE page SYSTEM "chrome://evergreen/locale/patron_display.dtd">
-
-<page id="patron_display_contact_win"
- orient="vertical" style="overflow: auto" width="800" height="500"
- sizemode="maximized" persist="width height"
- onload="params.w = window;
- params.app = 'PatronDisplayContact';
- mw.OpenILS_init(params);"
- onunload="mw.OpenILS_exit(params);"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <script>mw.sdump('D_TRACE','Loading patron_display_contact.xul\n');</script>
-
- <!-- Stylesheets -->
- <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/evergreen.css" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/patron.css" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/patron_display.css" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/patron_display_contact.css" type="text/css"?>
-
- <!-- Overlays for this XUL file -->
- <?xul-overlay href="chrome://evergreen/content/patron/patron_display_contact_overlay.xul"?>
-
- <!-- XUL'ified abstraction for logic to attach to widgets -->
- <commandset id="universal_cmds" />
-
- <!-- Accelerator Keys (Accessor Keys are in DTD's) -->
- <keyset id="PatronDisplayContact_keys" />
-
- <!-- Layout to be filled in by overlays and javascript -->
- <box id="PatronDisplayContact_main" />
-
- <popupset id="universal_popupset" />
-
-</page>
-
<?xul-overlay href="chrome://evergreen/content/main/clam_shell_overlay.xul"?>
<?xul-overlay href="chrome://evergreen/content/patron/patron_items_overlay.xul"?>
+ <?xul-overlay href="chrome://evergreen/content/patron/patron_checkout_items_overlay.xul"?>
<?xul-overlay href="chrome://evergreen/content/patron/patron_display_status.xul"?>
<?xul-overlay href="chrome://evergreen/content/patron/patron_display_contact.xul"?>
</deck>
<deck id="ClamShell_second_deck">
- <box id="PatronCheckout_main"><label value="checkout"/></box>
+ <box id="PatronCheckoutItems_main"/>
<box id="PatronItems_main" />
<box id="PatronHolds_main"><label value="holds" /></box>
<box id="PatronBills_main"><label value="bills" /></box>
label="&patron_navbar.info;" accesskey="&patron_navbar.info.accesskey;"/>
</hbox>
+<hbox id="PatronCheckoutItems_insert1">
+ <label id="patron_checkout_scan_barcode_label" value="&patron_display.checkout.scan_label;" accesskey="&patron_display.checkout.scan_label.accesskey;" control="patron_checkout_scan_textbox"/>
+ <textbox id="patron_checkout_barcode_entry_textbox"/>
+ <button id="patron_checkout_submit_barcode_button" value="&patron_display.checkout.submit_label;" accesskey="&patron_display.checkout.submit_label.accesskey;"/>
+</hbox>
+
+<hbox id="PatronCheckoutItems_insert2">
+</hbox>
+
+<hbox id="PatronCheckoutItems_insert3">
+</hbox>
+
<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
<keyset id="PatronDisplay_keys">
</keyset>
+++ /dev/null
-sdump('D_TRACE','Loading patron_display_status.js\n');
-
-function patron_display_status_init(p) {
- sdump('D_PATRON_DISPLAY_STATUS',"TESTING: patron_display_status.js: " + mw.G['main_test_variable'] + '\n');
-
- p.patron_name_label = get_widget( p.w.document, p.patron_name_label );
- if (p.show_name) {
- sdump('D_PATRON_DISPLAY_STATUS','Showing name label\n');
- p.w.patron_name_label.hidden = false;
- } else {
- sdump('D_PATRON_DISPLAY_STATUS','Hiding name label\n');
- p.w.patron_name_label.hidden = true;
- }
-
- p.w.patron_retrieve_button = get_widget( p.w.document, p.patron_retrieve_button );
- p.w.patron_retrieve_button.disabled = true;
- if (p.show_retrieve_button) {
- sdump('D_PATRON_DISPLAY_STATUS','Showing retrieve button\n');
- p.w.patron_retrieve_button.hidden = false;
- p.w.patron_retrieve_button.addEventListener(
- 'command',
- function (ev) {
- spawn_patron_display(
- p.w.app_shell,'new_tab','main_tabbox',
- {
- 'patron' : p.w._patron
- }
- );
- },
- false
- );
- } else {
- sdump('D_PATRON_DISPLAY_STATUS','Hiding retrieve button\n');
- p.w.patron_retrieve_button.hidden = true;
- }
-
- p.w.set_patron = function (au) {
- p.w.patron_retrieve_button.disabled = false;
- return p.w._patron = au;
- }
- p.w.display_patron = function (au) {
- if (au) p.w.set_patron(au);
- return render_fm(p.w.document, { 'au' : p.w._patron });
- };
- p.w.retrieve_patron_via_barcode = function (barcode) {
- if (!barcode) barcode = patron_get_barcode( p.w._patron );
- p.w.set_patron( retrieve_patron_by_barcode( barcode ) );
- return p.w.display_patron();
- }
- p.w.retrieve_patron_via_id = function (id) {
- p.w.set_patron( retrieve_patron_by_id( id ) );
- return p.w.display_patron();
- }
-
- consider_Timeout(
- function() {
- sdump('D_TIMEOUT','******** timeout occurred in patron_display_status.js\n');
- if (p.patron) {
- if (typeof(p.patron) == 'object') {
- p.w.set_patron( p.patron );
- p.w.display_patron();
- } else
- p.w.retrieve_patron_via_barcode( p.patron );
- }
- }, 0
- );
-
- sdump('D_TRACE_EXIT',arg_dump(arguments));
- return;
-}
-
-
+++ /dev/null
-<?xml version="1.0"?>
-<!-- Clamlication: Evergreen Staff Client -->
-
-<!-- Localization -->
-<!DOCTYPE page SYSTEM "chrome://evergreen/locale/patron_display.dtd">
-
-<page id="patron_display_status_win"
- orient="vertical" style="overflow: auto" width="800" height="500"
- sizemode="maximized" persist="width height"
- onload="params.w = window;
- params.patron_retrieve_button = 'PatronDisplayStatus_retrieve_button';
- params.patron_name_label = 'PatronDisplayStatus_patron_name';
- params.app = 'PatronDisplayStatus';
- mw.OpenILS_init(params);"
- onunload="mw.OpenILS_exit(params);"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <script>mw.sdump('D_TRACE','Loading patron_display_status.xul\n');</script>
-
- <!-- Stylesheets -->
- <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/evergreen.css" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/patron.css" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/patron_display.css" type="text/css"?>
- <?xml-stylesheet href="chrome://evergreen/skin/patron_display_status.css" type="text/css"?>
-
- <!-- Overlays for this XUL file -->
- <?xul-overlay href="chrome://evergreen/content/patron/patron_display_status_overlay.xul"?>
-
- <!-- XUL'ified abstraction for logic to attach to widgets -->
- <commandset id="universal_cmds" />
-
- <!-- Accelerator Keys (Accessor Keys are in DTD's) -->
- <keyset id="PatronDisplayStatus_keys" />
-
- <!-- Layout to be filled in by overlays and javascript -->
- <box id="PatronDisplayStatus_main" />
-
- <popupset id="universal_popupset" />
-
-</page>
-
'D_PAGED_TREE' : true,
'D_TAB' : false,
- 'D_AUTH' : false,
+ 'D_AUTH' : true,
'D_OPAC' : false,
function user_async_request(app,name,params,func) {
sdump('D_SES','=-=-=-=-= user_async_request:\n');
- sdump('D_SES','request '+(app)+' '+(name)+' '+js2JSON(params)+ ' ' + func + '\n');
+ sdump('D_SES','request '+(app)+' '+(name)+' '+js2JSON(params)+ '\n');
var request = new RemoteRequest( app, name );
for(var index in params) {
request.addParam(params[index]);
<!ENTITY patron_display.status.caption 'Status'>
<!ENTITY patron_display.contact.caption 'Identity & Contact Info'>
+<!ENTITY patron_display.checkout.scan_label 'Enter Barcode:'>
+<!ENTITY patron_display.checkout.scan_label.accesskey 'E'>
+<!ENTITY patron_display.checkout.submit_label 'Submit'>
+<!ENTITY patron_display.checkout.submit_label.accesskey 'S'>
+
<!ENTITY patron_navbar.retrieve 'Retrieve Patron'>
<!ENTITY patron_navbar.retrieve.accesskey 'R'>
<!ENTITY patron_navbar.refresh 'Refresh'>