--- /dev/null
+sdump('D_TRACE','Loading patron_display.js\n');
+
+function patron_display_init(p) {
+ sdump('D_PATRON_DISPLAY',"TESTING: patron_display.js: " + mw.G['main_test_variable'] + '\n');
+ sdump('D_TRACE_ENTER',arg_dump(arguments));
+
+ p.w.set_patron = function (au) {
+ return p.w._patron = au;
+ }
+ p.w.display_patron = function (au) {
+ if (au) p.w.set_patron(au);
+ if (p.w.status_w)
+ p.w.status_w.display_patron(au);
+ if (p.w.contact_w)
+ p.w.contact_w.display_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();
+ }
+ p.w.refresh = function() {
+ p.w.retrieve_patron_via_id( p.w._patron.id() );
+ }
+
+ if (p.patron) {
+ if (typeof(p.patron) == 'object') {
+ p.w._patron = p.patron;
+ p.w.display_patron();
+ } else
+ p.w.retrieve_patron_via_barcode( p.patron );
+ }
+
+ p.w.clamshell = spawn_clamshell(
+ p.w.document, 'new_iframe', p.clamshell, {
+ 'horizontal' : true,
+ 'onload' : patron_display_init_after_clamshell(p)
+ }
+ );
+
+
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+ return;
+}
+
+function patron_display_init_after_clamshell(p) {
+ sdump('D_PATRON_DISPLAY',arg_dump(arguments));
+ return function (clamshell_w) {
+ p.w.inner_clamshell = spawn_clamshell_vertical(
+ clamshell_w.document,
+ 'new_iframe',
+ clamshell_w.first_deck, {
+ 'vertical' : true,
+ 'onload' : patron_display_init_after_inner_clamshell(p)
+ }
+ );
+
+ return;
+ };
+
+}
+
+function patron_display_init_after_inner_clamshell(p) {
+ sdump('D_PATRON_DISPLAY',arg_dump(arguments));
+ return function (clamshell_w) {
+ sdump('D_PATRON_DISPLAY',arg_dump(arguments));
+ p.w.status_w = spawn_patron_display_status(
+ clamshell_w.document,
+ 'new_iframe',
+ clamshell_w.first_deck, {
+ 'patron' : p.w._patron
+ }
+ );
+ p.w.contact_w = spawn_patron_display_contact(
+ clamshell_w.document,
+ 'new_iframe',
+ clamshell_w.second_deck, {
+ 'patron' : p.w._patron
+ }
+ );
+ 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_win"
+ orient="vertical" style="overflow: auto" width="800" height="500"
+ sizemode="maximized" persist="width height"
+ onload="params.w = window;
+ params.app = 'PatronDisplay';
+ params.clamshell = 'PatronDisplay_groupbox';
+ 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.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"?>
+
+ <!-- Overlays for this XUL file -->
+ <?xul-overlay href="chrome://evergreen/content/patron/patron_display_overlay.xul"?>
+
+ <!-- XUL'ified abstraction for logic to attach to widgets -->
+ <commandset id="PatronDisplay_cmds" />
+
+ <!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+ <keyset id="PatronDisplay_keys" />
+
+ <!-- Layout to be filled in by overlays and javascript -->
+ <box id="PatronDisplay_main" />
+
+</page>
+
--- /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();
+ }
+
+ 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 );
+ }
+
+ 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="PatronDisplayContact_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" />
+
+</page>
+
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE overlay SYSTEM "chrome://evergreen/locale/patron_display.dtd">
+<overlay id="patron_display_contact_overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script>mw.sdump('D_TRACE','Loading patron_display_contact_overlay.xul\n');</script>
+
+<commandset id="PatronDisplayContact_cmds">
+
+ <command id="cmd_broken" oncommand="
+ alert('Not Yet Implemented'); "/>
+
+</commandset>
+
+<!-- main widget for patron_display_contact -->
+<box id="PatronDisplayContact_main" flex="1" orient="vertical">
+ <groupbox id="PatronDisplayContact_groupbox" flex="1"/>
+</box>
+
+<groupbox id="PatronDisplayContact_groupbox" orient="vertical">
+ <caption label="&patron_display.contact.caption;"/>
+ <grid id="PatronDisplayContact_grid" />
+ <groupbox id="PatronDisplayContact_mailing_address" />
+ <groupbox id="PatronDisplayContact_physical_address" />
+</groupbox>
+
+<grid id="PatronDisplayContact_grid">
+ <columns id="pdsgc">
+ <column id="pdsgc1" />
+ <column id="pdsgc2" />
+ </columns>
+ <rows id="pdsgr" flex="1">
+ <row id="pdsgr0">
+ <label id="PatronDisplayContact_ident_label" class="text_right"
+ value="&patron_display.ident1.label;"/>
+ <hbox id="pdsgr0h">
+ <label id="PatronDisplayContact_ident_type"
+ render="true" fm_class="au" render_value="patron_get_ident1_type_as_text($$)" />
+ <label id="PatronDisplayContact_ident_value"
+ render="true" fm_class="au" render_value=".ident_value()" />
+ </hbox>
+ </row>
+ <row id="pdsgr0a">
+ <label id="PatronDisplayContact_ident_label2" class="text_right"
+ value="&patron_display.ident2.label;"/>
+ <hbox id="pdsgr0ah">
+ <label id="PatronDisplayContact_ident_type2"
+ render="true" fm_class="au" render_value="patron_get_ident2_type_as_text($$)" />
+ <label id="PatronDisplayContact_ident_value2"
+ render="true" fm_class="au" render_value=".ident_value2()" />
+ </hbox>
+ </row>
+ <row id="pdsgr0b"><label id="pdsgr0bl" value=" "/></row>
+ <row id="pdsgr1">
+ <label id="PatronDisplayContact_day_phone_label" class="text_right"
+ value="&patron_display.day_phone.label;" />
+ <label id="PatronDisplayContact_day_phone"
+ render="true" fm_class="au"
+ render_value=".day_phone()" />
+ </row>
+ <row id="pdsgr2">
+ <label id="PatronDisplayContact_evening_phone_label" class="text_right"
+ value="&patron_display.evening_phone.label;" />
+ <label id="PatronDisplayContact_evening_phone"
+ render="true" fm_class="au"
+ render_value=".evening_phone()" />
+ </row>
+ <row id="pdsgr3">
+ <label id="PatronDisplayContact_other_phone_label" class="text_right"
+ value="&patron_display.other_phone.label;" />
+ <label id="PatronDisplayContact_other_phone"
+ render="true" fm_class="au"
+ render_value=".other_phone()" />
+ </row>
+ </rows>
+</grid>
+
+<groupbox id="PatronDisplayContact_mailing_address" orient="vertical">
+ <caption id="pdcmac" label="&patron_display.mailing_address;"/>
+ <label id="pdcmal1"
+ tooltiptext="&patron_display.mailing.street1.label;"
+ render="true" fm_class="au" render_value=".mailing_address().street1()" />
+ <label id="pdcmal2"
+ tooltiptext="&patron_display.mailing.street2.label;"
+ render="true" fm_class="au" render_value=".mailing_address().street2()" />
+ <hbox id="pdcmah">
+ <label id="pdcmal3"
+ tooltiptext="&patron_display.mailing.city.label;"
+ render="true" fm_class="au" render_value=".mailing_address().city()" />
+ <label id="pdcmal4"
+ tooltiptext="&patron_display.mailing.state.label;"
+ render="true" fm_class="au" render_value=".mailing_address().state()" />
+ <label id="pdcmal5"
+ tooltiptext="&patron_display.mailing.post_code.label;"
+ render="true" fm_class="au" render_value=".mailing_address().post_code()" />
+ </hbox>
+</groupbox>
+
+<groupbox id="PatronDisplayContact_physical_address" orient="vertical">
+ <caption id="pdcpac" label="&patron_display.physical_address;"/>
+ <label id="pdcpal1"
+ tooltiptext="&patron_display.physical.street1.label;"
+ render="true" fm_class="au" render_value=".billing_address().street1()" />
+ <label id="pdcpal2"
+ tooltiptext="&patron_display.physical.street2.label;"
+ render="true" fm_class="au" render_value=".billing_address().street2()" />
+ <hbox id="pdcpah">
+ <label id="pdcpal3"
+ tooltiptext="&patron_display.physical.city.label;"
+ render="true" fm_class="au" render_value=".billing_address().city()" />
+ <label id="pdcpal4"
+ tooltiptext="&patron_display.physical.state.label;"
+ render="true" fm_class="au" render_value=".billing_address().state()" />
+ <label id="pdcpal5"
+ tooltiptext="&patron_display.physical.post_code.label;"
+ render="true" fm_class="au" render_value=".billing_address().post_code()" />
+ </hbox>
+</groupbox>
+
+
+
+
+<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+<keyset id="PatronDisplayContact_keys">
+</keyset>
+
+</overlay>
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE overlay SYSTEM "chrome://evergreen/locale/patron_display.dtd">
+<overlay id="patron_display_overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script>mw.sdump('D_TRACE','Loading patron_display_overlay.xul\n');</script>
+
+<commandset id="PatronDisplay_cmds">
+
+ <command id="cmd_broken" oncommand="
+ alert('Not Yet Implemented'); "/>
+
+ <command id="cmd_patron_refresh" oncommand="refresh()" />
+ <command id="cmd_patron_checkout" />
+ <command id="cmd_patron_items" />
+ <command id="cmd_patron_holds" />
+ <command id="cmd_patron_bills" />
+ <command id="cmd_patron_edit" />
+ <command id="cmd_patron_info" />
+
+</commandset>
+
+<!-- main widget for patron_display -->
+<box id="PatronDisplay_main" flex="1" orient="vertical">
+ <hbox id="PatronNavBar" flex="0"/>
+ <groupbox id="PatronDisplay_groupbox" orient="vertical" flex="1"/>
+</box>
+
+<hbox id="PatronNavBar">
+ <label id="PatronNavBar_patron_name" class="patronNameLarge"
+ tooltiptext="&patron_display.name.label;"
+ value="&patron_display.name.label;"
+ render="true" fm_class="au"
+ render_value="patron_get_full_name($$)" />
+ <spacer id="PatronNavBar_spacer" flex="1" />
+ <button id="PatronNavBar_refresh" command="cmd_patron_refresh"
+ label="&patron_navbar.refresh;" accesskey="&patron_navbar.refresh.accesskey;"/>
+ <button id="PatronNavBar_checkout" command="cmd_patron_checkout"
+ label="&patron_navbar.checkout;" accesskey="&patron_navbar.checkout.accesskey;"/>
+ <button id="PatronNavBar_items" command="cmd_patron_items"
+ label="&patron_navbar.items;" accesskey="&patron_navbar.items.accesskey;"/>
+ <button id="PatronNavBar_holds" command="cmd_patron_holds"
+ label="&patron_navbar.holds;" accesskey="&patron_navbar.holds.accesskey;"/>
+ <button id="PatronNavBar_bills" command="cmd_patron_bills"
+ label="&patron_navbar.bills;" accesskey="&patron_navbar.bills.accesskey;"/>
+ <button id="PatronNavBar_edit" command="cmd_patron_edit"
+ label="&patron_navbar.edit;" accesskey="&patron_navbar.edit.accesskey;"/>
+ <button id="PatronNavBar_info" command="cmd_patron_info"
+ label="&patron_navbar.info;" accesskey="&patron_navbar.info.accesskey;"/>
+</hbox>
+
+<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+<keyset id="PatronDisplay_keys">
+</keyset>
+
+</overlay>
--- /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');
+
+ if (p.app_shell) p.w.app_shell = p.app_shell;
+
+ p.w.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();
+ }
+
+ 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 );
+ }
+
+ 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="PatronDisplayStatus_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" />
+
+</page>
+
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE overlay SYSTEM "chrome://evergreen/locale/patron_display.dtd">
+<overlay id="patron_display_status_overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script>mw.sdump('D_TRACE','Loading patron_display_status_overlay.xul\n');</script>
+
+<commandset id="PatronDisplayStatus_cmds">
+
+ <command id="cmd_broken" oncommand="
+ alert('Not Yet Implemented'); "/>
+
+</commandset>
+
+<!-- main widget for patron_display_status -->
+<box id="PatronDisplayStatus_main" flex="1" orient="vertical">
+ <groupbox id="PatronDisplayStatus_groupbox" flex="1"/>
+</box>
+
+<groupbox id="PatronDisplayStatus_groupbox" orient="vertical">
+ <caption label="&patron_display.status.caption;"/>
+ <label id="PatronDisplayStatus_patron_name" class="patronNameMedium"
+ tooltiptext="&patron_display.name.label;"
+ value=" "
+ render="true" fm_class="au"
+ render_value="patron_get_full_name($$)" />
+ <label id="PatronDisplayStatus_home_ou"
+ tooltiptext="&patron_display.home_ou.label;"
+ value=" "
+ render="true" fm_class="au"
+ render_value="patron_get_home_ou_name($$)" />
+ <grid id="PatronDisplayStatus_grid" flex="1"/>
+ <button id="PatronDisplayStatus_retrieve_button"
+ label="&patron_navbar.retrieve;"
+ accesskey="&patron_navbar.retrieve.accesskey;"/>
+ <label bug="without this here, the label and grid get swapped in the display"/>
+</groupbox>
+
+<grid id="PatronDisplayStatus_grid">
+ <columns id="pdsgc">
+ <column id="pdsgc1" />
+ <column id="pdsgc2" />
+ <column id="pdsgc3" />
+ <column id="pdsgc4" />
+ </columns>
+ <rows id="pdsgr" flex="1">
+ <row id="pdsgr1" render="true" fm_class="au" render_css_style="patron_get_standing_css_style($$.standing())">
+ <label id="PatronDisplayStatus_profile_label" class="text_right"
+ value="&patron_display.profile.label;" />
+ <label id="PatronDisplayStatus_profile"
+ render="true" fm_class="au"
+ render_value="patron_get_profile_as_text($$)" />
+ <label id="PatronDisplayStatus_standing_label" class="text_right"
+ value="&patron_display.standing.label;" />
+ <label id="PatronDisplayStatus_standing"
+ render="true" fm_class="au"
+ render_value="patron_get_standing_as_text($$)" />
+ </row>
+ <row id="pdsgr2">
+ <label id="PatronDisplayStatus_credit_label" class="text_right"
+ value="&patron_display.credit.label;" />
+ <label id="PatronDisplayStatus_credit"
+ render="true" fm_class="au"
+ render_value="patron_get_credit_total($$)" />
+ <label id="PatronDisplayStatus_bills_label" class="text_right"
+ value="&patron_display.bills.label;" />
+ <label id="PatronDisplayStatus_bill"
+ render="true" fm_class="au"
+ render_value="patron_get_bills_total($$)" />
+ </row>
+ <row id="pdsgr3">
+ <label id="PatronDisplayStatus_checkouts_label" class="text_right"
+ value="&patron_display.checkouts.label;" />
+ <label id="PatronDisplayStatus_checkouts"
+ render="true" fm_class="au"
+ render_value="patron_get_checkouts_total($$)" />
+ <label id="PatronDisplayStatus_checkouts_overdue_label" class="text_right"
+ value="&patron_display.checkouts_overdue.label;" />
+ <label id="PatronDisplayStatus_checkouts_overdue"
+ render="true" fm_class="au"
+ render_value="patron_get_checkouts_overdue_total($$)" />
+ </row>
+ <row id="pdsgr4">
+ <label id="PatronDisplayStatus_holds_label" class="text_right"
+ value="&patron_display.holds.label;" />
+ <label id="PatronDisplayStatus_holds"
+ render="true" fm_class="au"
+ render_value="patron_get_holds_total($$)" />
+ <label id="PatronDisplayStatus_holds_available_label" class="text_right"
+ value="&patron_display.holds_available.label;" />
+ <label id="PatronDisplayStatus_holds_available"
+ render="true" fm_class="au"
+ render_value="patron_get_holds_available_total($$)" />
+ </row>
+ </rows>
+</grid>
+
+
+<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+<keyset id="PatronDisplayStatus_keys">
+</keyset>
+
+</overlay>