hold capture interface
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 20 Jul 2005 16:24:52 +0000 (16:24 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 20 Jul 2005 16:24:52 +0000 (16:24 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1310 dcc99617-32d9-48b4-a31d-7c20da2025e4

19 files changed:
Evergreen/staff_client/Makefile
Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS.js
Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS_scripts_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/circ/checkin.js
Evergreen/staff_client/chrome/content/evergreen/circ/circ_utils.js
Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture.js [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture.xul [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture_items.js [new file with mode: 0644]
Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture_overlay.xul [new file with mode: 0755]
Evergreen/staff_client/chrome/content/evergreen/main/app_shell_menus_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/main/app_shell_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/util/error.js
Evergreen/staff_client/chrome/content/evergreen/util/spawn_win.js
Evergreen/staff_client/chrome/locale/en-US/evergreen/OpenILS.properties
Evergreen/staff_client/chrome/locale/en-US/evergreen/app_shell.dtd
Evergreen/staff_client/chrome/locale/en-US/evergreen/checkin.dtd
Evergreen/staff_client/chrome/locale/en-US/evergreen/hold_capture.dtd [new file with mode: 0644]
Evergreen/staff_client/chrome/locale/en-US/evergreen/patron_display.dtd
Evergreen/staff_client/chrome/skin/evergreen/hold_capture.css [new file with mode: 0644]

index c9648ee..ab177f5 100644 (file)
@@ -53,6 +53,8 @@ patron:
 circ:
        (cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/checkin_items/g | sed s/PagedTree/CheckinItems/g > chrome/content/evergreen/circ/checkin_items_overlay.xul )
        (cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/checkin_items.dtd)
+       (cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/hold_capture_items/g | sed s/PagedTree/HoldCaptureItems/g > chrome/content/evergreen/circ/hold_capture_items_overlay.xul )
+       (cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/hold_capture_items.dtd)
 
 evergreen.xpi: evergreen.jar
        @echo
@@ -74,6 +76,7 @@ clean:
        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/patron/patron_holds_overlay.xul chrome/locale/en-US/evergreen/patron_holds.dtd
        rm -f chrome/content/evergreen/circ/checkin_items_overlay.xul chrome/locale/en-US/evergreen/checkin_items.dtd
+       rm -f chrome/content/evergreen/circ/hold_capture_items_overlay.xul chrome/locale/en-US/evergreen/hold_capture_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
index 6adb8c1..2f4a13c 100644 (file)
@@ -10,6 +10,7 @@ function OpenILS_init(params) {
                        case 'PatronSearch' : patron_search_init(params); break;
                        case 'PatronDisplay' : patron_display_init(params); break;
                        case 'Checkin' : checkin_init(params); break;
+                       case 'HoldCapture' : hold_capture_init(params); break;
                }
 
        } catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); }
@@ -36,6 +37,7 @@ function OpenILS_exit(params) {
                        case 'PatronSearch' : patron_search_exit(params); break;
                        case 'PatronDisplay' : patron_display_exit(params); break;
                        case 'Checkin' : checkin_exit(params); break;
+                       case 'HoldCapture' : hold_capture_exit(params); break;
                }
 
        } catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); }
index 1d74811..72cbf39 100644 (file)
@@ -24,6 +24,8 @@
                <script src="chrome://evergreen/content/circ/circ_utils.js" />
                <script src="chrome://evergreen/content/circ/checkin.js" />
                <script src="chrome://evergreen/content/circ/checkin_items.js" />
+               <script src="chrome://evergreen/content/circ/hold_capture.js" />
+               <script src="chrome://evergreen/content/circ/hold_capture_items.js" />
        </apps>
 
 </overlay>
index 1f9b485..037a61f 100755 (executable)
@@ -62,11 +62,12 @@ function checkin_checkin_items_init(p) {
                                        // should be handled already
                                }
 
-                               tb.value = ''; tb.focus();
+                               tb.value = '';
                        }
                } catch(E) {
                        handle_error(E);
                }
+               tb.select(); tb.focus();
        }
 
        tb.addEventListener(
index d69b7b8..f3a7030 100644 (file)
@@ -57,16 +57,16 @@ function checkout_by_copy_barcode(barcode, patron_id, f) {
        }
 }
 
-function capture_hold( barcode ) {
+function hold_capture_by_copy_barcode( barcode, retrieve_flag ) {
        try {
-               var ou_id = user_request(
+               var check = user_request(
                        'open-ils.circ',
                        'open-ils.circ.hold.capture_copy.barcode',
-                       [ mw.G.auth_ses[0], barcode ]
+                       [ mw.G.auth_ses[0], barcode, retrieve_flag ]
                )[0];
-               return ou_id;
+               return check;
        } catch(E) {
-               handle_error(E);
+               handle_error(E, true);
                return null;
        }
 }
@@ -104,9 +104,10 @@ function checkin_by_copy_barcode(barcode, f) {
                                                switch(rv) {
                                                        case 0: /* capture */
                                                        try {
-                                                               var ou_id = capture_hold( barcode );
-                                                               check.text = 'Captured for Hold';
-                                                               check.route_to = mw.G.org_tree_hash[ ou_id ].shortname();
+                                                               var check2 = hold_capture_by_copy_barcode( barcode );
+                                                               if (check2) {
+                                                                       check.route_to = mw.G.org_tree_hash[ check2.route_to ].shortname();
+                                                               }
 
                                                        } catch(E) { 
                                                                sdump('D_ERROR',E + '\n'); 
@@ -130,7 +131,7 @@ function checkin_by_copy_barcode(barcode, f) {
                }
                return check;
        } catch(E) {
-               handle_error(E);
+               handle_error(E, true);
                return null;
        }
 }
diff --git a/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture.js b/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture.js
new file mode 100755 (executable)
index 0000000..b0d0906
--- /dev/null
@@ -0,0 +1,149 @@
+sdump('D_TRACE','Loading hold_capture.js\n');
+
+function hold_capture_init(p) {
+       sdump('D_HOLD_CAPTURE',"TESTING: hold_capture.js: " + mw.G['main_test_variable'] + '\n');
+       sdump('D_CONSTRUCTOR',arg_dump(arguments));
+
+
+       // gives: p.clamshell, p.right_panel, p.left_panel, p.inner_left_clamshell, p.inner_top_panel, p.inner_bottom_panel
+       hold_capture_clamshell_init(p);
+
+       // gives: p.hold_capture_items, p.redraw_hold_capture_items
+       hold_capture_hold_capture_items_init(p);
+
+       p.refresh = function() {
+       }
+
+       p.retrieve_button = p.w.document.getElementById('PatronSearch_retrieve_button');
+       p.retrieve_button.addEventListener(
+               'command',
+               function (ev) {
+                       spawn_patron_display(
+                               p.w.app_shell,'new_tab','main_tabbox',
+                               {
+                                       'patron' : retrieve_patron_by_id(
+                                               p._patron.id()
+                                       )
+                               }
+                       );
+               }
+               ,false
+       );
+
+
+       sdump('D_TRACE_EXIT',arg_dump(arguments));
+       return p;
+}
+
+function hold_capture_clamshell_init(p) {
+       p.clamshell = clam_shell_init( { 'w' : p.w, 'node' : p.clamshell_node, 'debug' : p.app } );
+       p.left_panel = p.clamshell.first_deck;
+       p.right_panel = p.clamshell.second_deck;
+}
+
+function hold_capture_hold_capture_items_init(p) {
+       p.hold_capture_items = hold_capture_items_init( { 'w' : p.w, 'node' : p.hold_capture_items_node, 'debug' : p.app } );
+
+       var hold_captures = [];
+       var tb = p.hold_capture_items_node.getElementsByAttribute('id','hold_capture_barcode_entry_textbox')[0];
+       var submit_button = p.hold_capture_items_node.getElementsByAttribute('id','hold_capture_submit_barcode_button')[0];
+
+       p.attempt_hold_capture = function(barcode) {
+               try {
+                       //if (! is_barcode_valid(barcode) ) throw('Invalid Barcode');
+                       var check = hold_capture_by_copy_barcode( barcode );
+                       if (check) {
+                               sdump('D_HOLD_CAPTURE','check = ' + check + '\n' + pretty_print( js2JSON( check ) ) + '\n');
+
+                               check.status = 0;
+                               check.text = 'Captured for Hold Request';
+
+                               hold_captures.push( check );
+                               p.hold_capture_items.add_hold_capture_items( [ hold_captures.length - 1 ] );
+
+                               tb.value = ''; 
+                       }
+               } catch(E) {
+                       handle_error(E);
+               }
+               tb.select(); tb.focus();
+       }
+
+       tb.addEventListener(
+               'keypress',
+               function(ev) {
+                       if (ev.keyCode == 13 || ev.keyCode == 77 ) { p.attempt_hold_capture( tb.value ); }
+               },
+               false
+       );
+       submit_button.addEventListener(
+               'command',
+               function(ev) {
+                       p.attempt_hold_capture( tb.value );
+               },
+               false
+       );
+
+       p.redraw_hold_capture_items = function() {
+               p.hold_capture_items.clear_hold_capture_items();
+               for (var i = 0; i < hold_captures.length; i++) {
+                       p.hold_capture_items.add_hold_capture_items( [ i ] );
+               }
+       }
+
+       p.hold_capture_items.register_hold_capture_items_select_callback(
+               function (ev) {
+                       sdump('D_HOLD_CAPTURE','Firing hold_capture_items_select_callback\n');
+                       var hold_capture_items = get_list_from_tree_selection( p.hold_capture_items.paged_tree.tree );
+                       /* grab cover art for selected item? */
+               }
+       );
+       p.hold_capture_items.register_flesh_hold_capture_items_function(
+               function (treeitem) {
+                       sdump('D_HOLD_CAPTURE','Firing flesh_hold_capture_items_function\n');
+                       var record_id = treeitem.getAttribute('record_id'); 
+                       p.hold_capture_items.map_hold_capture_items_to_cols( hold_captures[ record_id ], treeitem );
+               }
+       );
+       p.hold_capture_items.register_context_builder(
+               function (ev) {
+                       sdump('D_HOLD_CAPTURE','Firing context_builder\n');
+                       empty_widget(p.hold_capture_items.paged_tree.popup);
+                       var hold_capture_items = get_list_from_tree_selection( p.hold_capture_items.paged_tree.tree );
+                       var menuitem;
+
+                       /*** COPY EDITOR ***/
+                       menuitem = p.hold_capture_items.paged_tree.w.document.createElement('menuitem');
+                       p.hold_capture_items.paged_tree.popup.appendChild( menuitem );
+                       menuitem.setAttribute('label',getString('circ.context_edit'));
+                       menuitem.addEventListener(
+                               'command',
+                               function (ev) {
+                                       for (var i = 0; i < hold_capture_items.length; i++) {
+                                               var idx = hold_capture_items[i].getAttribute('record_id');
+                                               sdump('D_HOLD_CAPTURE','Firing copy edit context\n');
+                                       }
+                               },
+                               false
+                       );
+
+                       /*** OPAC ***/
+                       menuitem = p.hold_capture_items.paged_tree.w.document.createElement('menuitem');
+                       p.hold_capture_items.paged_tree.popup.appendChild( menuitem );
+                       menuitem.setAttribute('label',getString('circ.context_opac'));
+                       menuitem.addEventListener(
+                               'command',
+                               function (ev) {
+                                       for (var i = 0; i < hold_capture_items.length; i++) {
+                                               var idx = hold_capture_items[i].getAttribute('record_id');
+                                               sdump('D_HOLD_CAPTURE','Firing opac context\n');
+                                       }
+                               },
+                               false
+                       );
+                       
+               }
+       );
+}
+
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture.xul b/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture.xul
new file mode 100755 (executable)
index 0000000..932b5d9
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!-- Clamlication: Evergreen Staff Client -->
+
+<!-- Localization -->
+<!DOCTYPE page SYSTEM "chrome://evergreen/locale/hold_capture.dtd">
+
+<page id="hold_capture_win"
+       orient="vertical" style="overflow: auto" width="800" height="500"
+       sizemode="maximized" persist="width height" 
+       onload="try {
+               params.w = window; 
+               params.app = 'HoldCapture'; 
+               params.clamshell_node = document.getElementById('ClamShell_main');
+               params.hold_capture_items_node = document.getElementById('HoldCaptureItems_main');
+               params.commandset_node = document.getElementById('universal_cmds');
+               mw.focus_widget( document, 'hold_capture_barcode_entry_textbox' );
+               mw.OpenILS_init(params);
+               } catch(E) {
+                       alert('onload: ' + E);
+               }"
+       onunload="mw.OpenILS_exit(params);"
+       xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+       <script>mw.sdump('D_TRACE','Loading hold_capture.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/hold_capture.css" type="text/css"?>
+       
+       <!-- Overlays for this XUL file -->
+       <?xul-overlay href="chrome://evergreen/content/circ/hold_capture_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="HoldCapture_keys" />
+
+       <!-- Layout to be filled in by overlays and javascript -->
+       <box id="HoldCapture_main" />
+
+       <popupset id="universal_popupset" />
+
+</page>
+
diff --git a/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture_items.js b/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture_items.js
new file mode 100644 (file)
index 0000000..74b5a0f
--- /dev/null
@@ -0,0 +1,64 @@
+sdump('D_TRACE','Loading hold_capture_items.js\n');
+
+function hold_capture_items_init(p) {
+       sdump('D_HOLD_CAPTURE_ITEMS',"TESTING: hold_capture_items.js: " + mw.G['main_test_variable'] + '\n');
+       sdump('D_CONSTRUCTOR',arg_dump(arguments));
+
+       p.hold_capture_items_cols = checkin_cols();
+
+       p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.hold_capture_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } );
+       p.add_hold_capture_items = p.paged_tree.add_rows;
+       p.clear_hold_capture_items = p.paged_tree.clear_tree;
+
+       p.register_hold_capture_items_select_callback = function (f) {
+               sdump('D_HOLD_CAPTURE_ITEMS','p.register_hold_capture_items_select_callback(' + f + ')\n');
+               p.paged_tree.register_select_callback( f );
+       }
+
+       p.register_flesh_hold_capture_items_function = function (f) {
+               sdump('D_HOLD_CAPTURE_ITEMS','p.register_flesh_hold_capture_items_function(' + f + ')\n');
+               p.paged_tree.register_flesh_row_function( f );
+       }
+
+       p.register_context_builder = function (f) {
+               sdump('D_HOLD_CAPTURE_ITEMS','p.register_context_builder(' + f + ')\n');
+               p.paged_tree.register_context_builder( f );
+       }
+
+       p.map_hold_capture_items_to_cols = function (hold_capture_items, treeitem) {
+               sdump('D_HOLD_CAPTURE_ITEMS','p.map_hold_capture_items_to_cols( ' + hold_capture_items + ',' + treeitem + ')\n');
+               hold_capture_items_tree_map_hold_capture_items_to_cols(p, hold_capture_items, treeitem);        
+       }
+
+       sdump('D_TRACE_EXIT',arg_dump(arguments));
+       return p;
+}
+
+function hold_capture_items_tree_map_hold_capture_items_to_cols(p, hold_capture_items, treeitem) {
+       sdump('D_HOLD_CAPTURE_ITEMS',arg_dump(arguments,{1:true}));
+       sdump('D_TRACE_ENTER',arg_dump(arguments));
+       var cols = new Array();
+       for (var i = 0; i < p.hold_capture_items_cols.length; i++) {
+               var hash = p.hold_capture_items_cols[i];
+               sdump('D_HOLD_CAPTURE_ITEMS','Considering ' + js2JSON(hash) + '\n');
+               var obj_string = 'hold_capture_items';
+               switch( hash.fm_class ) {
+                       case 'acp' : obj_string = 'hold_capture_items.copy'; break;
+                       case 'circ' : obj_string = 'hold_capture_items.circ'; break;
+                       case 'mvr' : obj_string = 'hold_capture_items.record'; break;
+               }
+               var cmd = parse_render_string( obj_string, hash.fm_field_render );
+               sdump('D_HOLD_CAPTURE_ITEMS','cmd = ' + cmd + '\n');
+               var col = '';
+               try {
+                       col = eval( cmd );
+                       sdump('D_HOLD_CAPTURE_ITEMS','eval = ' + col + '\n');
+               } catch(E) {
+                       sdump('D_ERROR',js2JSON(E) + '\n');
+               }
+               cols.push( col );
+       }
+       sdump('D_HOLD_CAPTURE_ITEMS','cols = ' + js2JSON(cols) + '\n');
+       p.paged_tree.map_cols_to_treeitem( cols, treeitem );
+       sdump('D_TRACE_EXIT',arg_dump(arguments));
+}
diff --git a/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/circ/hold_capture_overlay.xul
new file mode 100755 (executable)
index 0000000..3cf99ea
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0"?>
+<!DOCTYPE overlay SYSTEM "chrome://evergreen/locale/hold_capture.dtd">
+<overlay id="hold_capture_overlay" 
+       xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+       <script>mw.sdump('D_TRACE','Loading hold_capture_overlay.xul\n');</script>
+
+       <?xul-overlay href="chrome://evergreen/content/main/clam_shell_overlay.xul"?>
+       <?xul-overlay href="chrome://evergreen/content/circ/hold_capture_items_overlay.xul"?>
+       <?xul-overlay href="chrome://evergreen/content/patron/patron_display_status_overlay.xul"?>
+
+<commandset id="universal_cmds">
+
+       <command id="cmd_broken" oncommand="
+               alert('Not Yet Implemented'); "/>
+
+
+</commandset>
+
+<!-- main widget for hold_capture -->
+<box id="HoldCapture_main" flex="1" orient="vertical">
+       <groupbox id="HoldCapture_groupbox" orient="vertical" flex="1">
+               <box id="ClamShell_main" />
+       </groupbox>
+</box>
+
+<deck id="ClamShell_first_deck">
+       <box id="PatronDisplayStatus_main" />
+       <spacer id="csfds" flex="1" />
+</deck>
+
+<deck id="ClamShell_second_deck">
+       <groupbox id="cssdgb">
+               <caption id="cssdgbc" label="&circ.hold_capture.caption;"/>
+               <box id="HoldCaptureItems_main"/>
+       </groupbox>
+</deck>
+
+<hbox id="HoldCaptureItems_insert1">
+       <label id="hold_capture_scan_barcode_label" value="&circ.hold_capture.scan_label;" accesskey="&circ.hold_capture.scan_label.accesskey;" control="hold_capture_scan_textbox"/>
+        <textbox id="hold_capture_barcode_entry_textbox"/>
+        <button id="hold_capture_submit_barcode_button" label="&circ.hold_capture.submit_label;" accesskey="&circ.hold_capture.submit_label.accesskey;"/>
+</hbox>
+
+<hbox id="HoldCaptureItems_insert2" />
+<hbox id="HoldCaptureItems_insert3" />
+<hbox id="HoldCaptureItems_insert4" />
+
+<hbox id="PatronDisplayStatus_insert2">
+       <label id="PatronSearch_patron_name" class="patronNameMedium"
+               tooltiptext="&hold_capture_patron.name.label;"
+               value=" "
+               render="true" fm_class="au" 
+               render_value="patron_get_full_name($$)" />
+</hbox>
+<hbox id="PatronDisplayStatus_insert4">
+       <button id="PatronSearch_retrieve_button" 
+               disabled="true"
+               label="&hold_capture_patron.retrieve;" 
+               accesskey="&hold_capture_patron.retrieve.accesskey;"/>
+</hbox>
+
+<hbox id="HoldCaptureItems_insert3">
+       <button id="hold_capture_print" label="&hold_capture.print_receipt_label;" accesskey="&hold_capture.print_receipt_label.accesskey;"/>
+       <button id="hold_capture_reprint" label="&hold_capture.reprint_receipt_label;" accesskey="&hold_capture.reprint_receipt_label.accesskey;"/>
+       <spacer id="cii3s" flex="1"/>
+       <checkbox id="hold_capture_auto" label="&hold_capture.auto_print_label;" accesskey="&hold_capture.auto_print_label.accesskey;"/> 
+       <button id="hold_capture_done" label="&hold_capture.done_label;" accesskey="&hold_capture.done_label.accesskey;"/>
+</hbox>
+
+
+<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+<keyset id="HoldCapture_keys">
+</keyset>
+
+</overlay>
index 44c5e55..6d7c05d 100644 (file)
@@ -49,7 +49,7 @@
        <menupopup id="main.menu.circ.popup">
                <menuitem label="&main.menu.circ.checkout.label;" accesskey="&main.menu.circ.checkout.key;" command="cmd_circ_checkout"/>
                <menuitem label="&main.menu.circ.checkin.label;" accesskey="&main.menu.circ.checkin.key;" command="cmd_circ_checkin"/>
-               <menuitem label="&main.menu.circ.renew.label;" accesskey="&main.menu.circ.renew.key;" command="cmd_broken"/>
+               <menuitem label="&main.menu.circ.hold_capture.label;" accesskey="&main.menu.circ.hold_capture.key;" command="cmd_circ_hold_capture"/>
        <!--
                <menu id="special-circ-menu" label="&main.menu.circ.special.label;" accesskey="&main.menu.circ.special.key;" command="cmd_broken"/>
                <menuseparator />
index a9ffd6e..4efc89a 100644 (file)
@@ -36,6 +36,9 @@
        <command id="cmd_circ_checkin" oncommand="
                mw.spawn_checkin(document,'replace_tab','main_tabbox',{}); "/>  
 
+       <command id="cmd_circ_hold_capture" oncommand="
+               mw.spawn_hold_capture(document,'replace_tab','main_tabbox',{}); "/>     
+
        <command id="cmd_search_opac" oncommand="
                mw.spawn_opac_navigator(document,'replace_tab','main_tabbox',{}); "/>   
 
index 5f771d5..184b19f 100644 (file)
@@ -45,6 +45,9 @@ var sdump_levels = {
        'D_CHECKIN' : true,
        'D_CHECKIN_ITEMS' : false,
 
+       'D_HOLD_CAPTURE' : true,
+       'D_HOLD_CAPTURE_ITEMS' : true,
+
        'D_CAT' : false,
 
        'D_PATRON_UTILS' : false,
index a2abf3c..6f5eecc 100644 (file)
@@ -98,6 +98,11 @@ function spawn_checkin(d,placement,place,passthru_params,clone) {
        return spawn_interface(d,placement,place,chrome,getString('checkin_interface_label'),passthru_params,clone);
 }
 
+function spawn_hold_capture(d,placement,place,passthru_params,clone) {
+       var chrome = 'chrome://evergreen/content/circ/hold_capture.xul';
+       return spawn_interface(d,placement,place,chrome,getString('hold_capture_interface_label'),passthru_params,clone);
+}
+
 function spawn_opac_navigator(d,placement,place,passthru_params,clone) {
        var chrome = 'chrome://evergreen/content/opac/opac.xul';
        //var chrome = 'http://google.com/';
index a67a642..41b2900 100644 (file)
@@ -1,6 +1,7 @@
 bills_interface_label=BILLS
 checkout_interface_label=CHECK OUT
 checkin_interface_label=CHECK IN
+hold_capture_interface_label=HOLD CAPTURE
 copies_editor_interface_label=COPIES EDIT
 copy_browser_interface_label=COPIES
 display_patron_interface_label=DISPLAY PATRON
index 1b6255e..0bf1fa1 100644 (file)
@@ -35,6 +35,7 @@
 <!-- The Circulation menu on the Main Menubar -->
 <!ENTITY main.menu.circ.checkout.label "Check Out"><!ENTITY main.menu.circ.checkout.key "O">
 <!ENTITY main.menu.circ.checkin.label "Check In"><!ENTITY main.menu.circ.checkin.key "C">
+<!ENTITY main.menu.circ.hold_capture.label "Capture Holds"><!ENTITY main.menu.circ.hold_capture.key "H">
 <!ENTITY main.menu.circ.renew.label "Renew"><!ENTITY main.menu.circ.renew.key "n">
 <!ENTITY main.menu.circ.mark_used.label "Mark Used"><!ENTITY main.menu.circ.mark_used.key "U">
 <!ENTITY main.menu.circ.copy_status.label "Display Item"><!ENTITY main.menu.circ.copy_status.key "I">
index 500ac01..1976639 100644 (file)
@@ -1,6 +1,6 @@
 <!ENTITY circ.checkin.caption 'Check In'>
-<!ENTITY circ.checkin.scan_label 'Enter barcode:'>
-<!ENTITY circ.checkin.scan_label.accesskey 'E'>
+<!ENTITY circ.checkin.scan_label 'Enter Barcode:'>
+<!ENTITY circ.checkin.scan_label.accesskey 'b'>
 <!ENTITY circ.checkin.submit_label 'Submit'>
 <!ENTITY circ.checkin.submit_label.accesskey 'S'>
 
diff --git a/Evergreen/staff_client/chrome/locale/en-US/evergreen/hold_capture.dtd b/Evergreen/staff_client/chrome/locale/en-US/evergreen/hold_capture.dtd
new file mode 100644 (file)
index 0000000..9bb1963
--- /dev/null
@@ -0,0 +1,20 @@
+<!ENTITY circ.hold_capture.caption 'Capture Hold'>
+<!ENTITY circ.hold_capture.scan_label 'Enter Barcode:'>
+<!ENTITY circ.hold_capture.scan_label.accesskey 'b'>
+<!ENTITY circ.hold_capture.submit_label 'Submit'>
+<!ENTITY circ.hold_capture.submit_label.accesskey 'S'>
+
+<!ENTITY hold_capture_patron.retrieve 'Retrieve Patron'>
+<!ENTITY hold_capture_patron.retrieve.accesskey 'R'>
+<!ENTITY hold_capture_patron.name.label 'Patron Name'>
+
+<!ENTITY hold_capture.print_receipt_label 'Print List'>
+<!ENTITY hold_capture.print_receipt_label.accesskey ''>
+<!ENTITY hold_capture.reprint_receipt_label 'Re-Print Last List'>
+<!ENTITY hold_capture.reprint_receipt_label.accesskey 'L'>
+<!ENTITY hold_capture.auto_print_label 'Auto-Print'>
+<!ENTITY hold_capture.auto_print_label.accesskey 'A'>
+<!ENTITY hold_capture.done_label 'Done'>
+<!ENTITY hold_capture.done_label.accesskey 'D'>
+
+
index 454d801..71936a4 100755 (executable)
@@ -3,7 +3,7 @@
 <!ENTITY patron_display.contact.caption 'Identity &amp; Contact Info'>
 
 <!ENTITY patron_display.checkout.scan_label 'Enter Barcode:'>
-<!ENTITY patron_display.checkout.scan_label.accesskey 'E'>
+<!ENTITY patron_display.checkout.scan_label.accesskey 'b'>
 <!ENTITY patron_display.checkout.submit_label 'Submit'>
 <!ENTITY patron_display.checkout.submit_label.accesskey 'S'>
 <!ENTITY patron_display.checkout.print_receipt_label 'Print Receipt'>
diff --git a/Evergreen/staff_client/chrome/skin/evergreen/hold_capture.css b/Evergreen/staff_client/chrome/skin/evergreen/hold_capture.css
new file mode 100644 (file)
index 0000000..19db78e
--- /dev/null
@@ -0,0 +1,3 @@
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); 
+@namespace html url("http://www.w3.org/TR/REC-html40"); 
+