various patron display components
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 11 Jul 2005 08:25:32 +0000 (08:25 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 11 Jul 2005 08:25:32 +0000 (08:25 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1124 dcc99617-32d9-48b4-a31d-7c20da2025e4

Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact.js [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact.xul [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact_overlay.xul [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.xul [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status_overlay.xul [new file with mode: 0755]

diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js
new file mode 100755 (executable)
index 0000000..44f52f6
--- /dev/null
@@ -0,0 +1,89 @@
+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;
+       };
+}
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul
new file mode 100755 (executable)
index 0000000..4b73386
--- /dev/null
@@ -0,0 +1,38 @@
+<?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>
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact.js
new file mode 100755 (executable)
index 0000000..a3cd803
--- /dev/null
@@ -0,0 +1,37 @@
+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;
+}
+
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact.xul
new file mode 100755 (executable)
index 0000000..5d876b6
--- /dev/null
@@ -0,0 +1,38 @@
+<?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>
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_contact_overlay.xul
new file mode 100755 (executable)
index 0000000..d798d8a
--- /dev/null
@@ -0,0 +1,127 @@
+<?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>
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_overlay.xul
new file mode 100755 (executable)
index 0000000..9206e0c
--- /dev/null
@@ -0,0 +1,56 @@
+<?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>
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js
new file mode 100755 (executable)
index 0000000..a51775f
--- /dev/null
@@ -0,0 +1,69 @@
+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;
+}
+
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.xul
new file mode 100755 (executable)
index 0000000..f0b01fe
--- /dev/null
@@ -0,0 +1,40 @@
+<?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>
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status_overlay.xul
new file mode 100755 (executable)
index 0000000..e336ddd
--- /dev/null
@@ -0,0 +1,103 @@
+<?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>