(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)
+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)
+
evergreen.xpi: evergreen.jar
@echo
@echo make the xpi file
zip -r evergreen.xpi chrome/ defaults/ install.js install.rdf Makefile LICENSE README -x \*CVS\* > /dev/null
-evergreen.jar: generated open-ils patron
+evergreen.jar: generated open-ils patron circ
@echo
@echo make the jar file
(cd chrome; zip -r evergreen.jar content/ locale/ skin/ -x \*CVS\* > /dev/null )
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/circ/checkin_items_overlay.xul chrome/locale/en-US/evergreen/checkin_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 'PagedTree' : paged_tree_init(params); break;
case 'Opac' : opac_init(params); break;
case 'PatronSearch' : patron_search_init(params); break;
- case 'PatronSearchForm' : patron_search_form_init(params); break;
- case 'PatronSearchResults' : patron_search_results_init(params); break;
case 'PatronDisplay' : patron_display_init(params); break;
- 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;
+ case 'Checkin' : checkin_init(params); break;
}
} catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); }
case 'PagedTree' : paged_tree_exit(params); break;
case 'Opac' : opac_exit(params); break;
case 'PatronSearch' : patron_search_exit(params); break;
- case 'PatronSearchForm' : patron_search_form_exit(params); break;
- case 'PatronSearchResults' : patron_search_results_exit(params); break;
case 'PatronDisplay' : patron_display_exit(params); break;
- 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;
+ case 'Checkin' : checkin_exit(params); break;
}
} catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); }
<script src="chrome://evergreen/content/patron/patron_search_form.js" />
<script src="chrome://evergreen/content/patron/patron_search_results.js" />
<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" />
+ <script src="chrome://evergreen/content/circ/checkin.js" />
+ <script src="chrome://evergreen/content/circ/checkin_items.js" />
</apps>
</overlay>
--- /dev/null
+sdump('D_TRACE','Loading checkin.js\n');
+
+function checkin_init(p) {
+ sdump('D_CHECKIN',"TESTING: checkin.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
+ checkin_clamshell_init(p);
+
+ // gives: p.checkin_items, p.redraw_checkin_items
+ checkin_checkin_items_init(p);
+
+ p.refresh = function() {
+ }
+
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+ return p;
+}
+
+function checkin_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 checkin_checkin_items_init(p) {
+ p.checkin_items = checkin_items_init( { 'w' : p.w, 'node' : p.checkin_items_node, 'popupset_node' : p.popupset_node, 'debug' : p.app } );
+
+ var checkins = [];
+ var tb = p.checkin_items_node.getElementsByAttribute('id','checkin_barcode_entry_textbox')[0];
+ var submit_button = p.checkin_items_node.getElementsByAttribute('id','checkin_submit_barcode_button')[0];
+
+ p.attempt_checkin = 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) {
+ checkins.push( check );
+ p.checkin_items.add_checkin_items( [ checkins.length - 1 ] );
+ }
+ } else {
+ throw(permit_check.text);
+ }
+ } catch(E) {
+ handle_error(E);
+ }
+ }
+
+ tb.addEventListener(
+ 'keypress',
+ function(ev) {
+ if (ev.keyCode == 13 || ev.keyCode == 77 ) { p.attempt_checkin( tb.value ); }
+ },
+ false
+ );
+ submit_button.addEventListener(
+ 'command',
+ function(ev) {
+ p.attempt_checkin( tb.value );
+ },
+ false
+ );
+
+ p.redraw_checkin_items = function() {
+ p.checkin_items.clear_checkin_items();
+ for (var i = 0; i < checkins.length; i++) {
+ p.checkin_items.add_checkin_items( [ i ] );
+ }
+ }
+
+ p.checkin_items.register_checkin_items_select_callback(
+ function (ev) {
+ sdump('D_CHECKIN','Firing checkin_items_select_callback\n');
+ var checkin_items = get_list_from_tree_selection( p.checkin_items.paged_tree.tree );
+ /* grab cover art for selected item? */
+ }
+ );
+ p.checkin_items.register_flesh_checkin_items_function(
+ function (treeitem) {
+ sdump('D_CHECKIN','Firing flesh_checkin_items_function\n');
+ var record_id = treeitem.getAttribute('record_id');
+ p.checkin_items.map_checkin_items_to_cols( checkins[ record_id ], treeitem );
+ }
+ );
+ p.checkin_items.register_context_builder(
+ function (ev) {
+ sdump('D_CHECKIN','Firing context_builder\n');
+ empty_widget(p.checkin_items.paged_tree.popup);
+ var checkin_items = get_list_from_tree_selection( p.checkin_items.paged_tree.tree );
+ var menuitem;
+
+ /*** COPY EDITOR ***/
+ menuitem = p.checkin_items.paged_tree.w.document.createElement('menuitem');
+ p.checkin_items.paged_tree.popup.appendChild( menuitem );
+ menuitem.setAttribute('label',getString('circ.context_edit'));
+ menuitem.addEventListener(
+ 'command',
+ function (ev) {
+ for (var i = 0; i < checkin_items.length; i++) {
+ var idx = checkin_items[i].getAttribute('record_id');
+ sdump('D_CHECKIN','Firing copy edit context\n');
+ }
+ },
+ false
+ );
+
+ /*** OPAC ***/
+ menuitem = p.checkin_items.paged_tree.w.document.createElement('menuitem');
+ p.checkin_items.paged_tree.popup.appendChild( menuitem );
+ menuitem.setAttribute('label',getString('circ.context_opac'));
+ menuitem.addEventListener(
+ 'command',
+ function (ev) {
+ for (var i = 0; i < checkin_items.length; i++) {
+ var idx = checkin_items[i].getAttribute('record_id');
+ sdump('D_CHECKIN','Firing opac context\n');
+ }
+ },
+ false
+ );
+
+ }
+ );
+}
+
+
--- /dev/null
+<?xml version="1.0"?>
+<!-- Clamlication: Evergreen Staff Client -->
+
+<!-- Localization -->
+<!DOCTYPE page SYSTEM "chrome://evergreen/locale/checkin.dtd">
+
+<page id="checkin_win"
+ orient="vertical" style="overflow: auto" width="800" height="500"
+ sizemode="maximized" persist="width height"
+ onload="params.w = window;
+ params.app = 'Checkin';
+ 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' );
+ 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 checkin.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/checkin.css" type="text/css"?>
+
+ <!-- Overlays for this XUL file -->
+ <?xul-overlay href="chrome://evergreen/content/circ/checkin_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="Checkin_keys" />
+
+ <!-- Layout to be filled in by overlays and javascript -->
+ <box id="Checkin_main" />
+
+ <popupset id="universal_popupset" />
+
+</page>
+
--- /dev/null
+sdump('D_TRACE','Loading checkin_items.js\n');
+
+function checkin_items_init(p) {
+ sdump('D_CHECKIN_ITEMS',"TESTING: checkin_items.js: " + mw.G['main_test_variable'] + '\n');
+ sdump('D_CONSTRUCTOR',arg_dump(arguments));
+
+ p.checkin_items_cols = circ_cols();
+
+ p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cols' : p.checkin_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_checkin_items_select_callback = function (f) {
+ sdump('D_CHECKIN_ITEMS','p.register_checkin_items_select_callback(' + f + ')\n');
+ p.paged_tree.register_select_callback( f );
+ }
+
+ p.register_flesh_checkin_items_function = function (f) {
+ sdump('D_CHECKIN_ITEMS','p.register_flesh_checkin_items_function(' + f + ')\n');
+ p.paged_tree.register_flesh_row_function( f );
+ }
+
+ p.register_context_builder = function (f) {
+ sdump('D_CHECKIN_ITEMS','p.register_context_builder(' + f + ')\n');
+ p.paged_tree.register_context_builder( f );
+ }
+
+ p.map_checkin_items_to_cols = function (checkin_items, treeitem) {
+ sdump('D_CHECKIN_ITEMS','p.map_checkin_items_to_cols( ' + checkin_items + ',' + treeitem + ')\n');
+ checkin_items_tree_map_checkin_items_to_cols(p, checkin_items, treeitem);
+ }
+
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+ return p;
+}
+
+function checkin_items_tree_map_checkin_items_to_cols(p, checkin_items, treeitem) {
+ sdump('D_CHECKIN_ITEMS',arg_dump(arguments,{1:true}));
+ sdump('D_TRACE_ENTER',arg_dump(arguments));
+ var cols = new Array();
+ for (var i = 0; i < p.checkin_items_cols.length; i++) {
+ var hash = p.checkin_items_cols[i];
+ sdump('D_CHECKIN_ITEMS','Considering ' + js2JSON(hash) + '\n');
+ var obj_string;
+ switch( hash.fm_class ) {
+ case 'acp' : obj_string = 'checkin_items.copy'; break;
+ case 'circ' : obj_string = 'checkin_items.circ'; break;
+ case 'mvr' : obj_string = 'checkin_items.record'; break;
+ }
+ var cmd = parse_render_string( obj_string, hash.fm_field_render );
+ sdump('D_CHECKIN_ITEMS','cmd = ' + cmd + '\n');
+ var col = '';
+ try {
+ col = eval( cmd );
+ sdump('D_CHECKIN_ITEMS','eval = ' + col + '\n');
+ } catch(E) {
+ sdump('D_ERROR',js2JSON(E) + '\n');
+ }
+ cols.push( col );
+ }
+ sdump('D_CHECKIN_ITEMS','cols = ' + js2JSON(cols) + '\n');
+ p.paged_tree.map_cols_to_treeitem( cols, treeitem );
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+}
--- /dev/null
+<?xml version="1.0"?>
+<!DOCTYPE overlay SYSTEM "chrome://evergreen/locale/checkin.dtd">
+<overlay id="checkin_overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+
+ <script>mw.sdump('D_TRACE','Loading checkin_overlay.xul\n');</script>
+
+ <?xul-overlay href="chrome://evergreen/content/circ/checkin_items_overlay.xul"?>
+
+<commandset id="universal_cmds">
+
+ <command id="cmd_broken" oncommand="
+ alert('Not Yet Implemented'); "/>
+
+
+</commandset>
+
+<!-- main widget for checkin -->
+<box id="Checkin_main" flex="1" orient="vertical">
+ <groupbox id="Checkin_groupbox" orient="vertical" flex="1">
+ <box id="ClamShell_main" />
+ </groupbox>
+</box>
+
+<deck id="ClamShell_first_deck">
+</deck>
+
+<deck id="ClamShell_second_deck">
+ <box id="CheckinItems_main"/>
+</deck>
+
+<hbox id="CheckinItems_insert1">
+ <label id="checkin_scan_barcode_label" value="&circ.checkin.scan_label;" accesskey="&circ.checkin.scan_label.accesskey;" control="checkin_scan_textbox"/>
+ <textbox id="checkin_barcode_entry_textbox"/>
+ <button id="checkin_submit_barcode_button" value="&circ.checkin.submit_label;" accesskey="&circ.checkin.submit_label.accesskey;"/>
+</hbox>
+
+<hbox id="CheckinItems_insert2" />
+<hbox id="CheckinItems_insert3" />
+<hbox id="CheckinItems_insert4" />
+
+
+<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
+<keyset id="Checkin_keys">
+</keyset>
+
+</overlay>
'D_PAGED_TREE' : true,
'D_TAB' : false,
- 'D_AUTH' : false,
+ 'D_AUTH' : true,
'D_OPAC' : false,
'D_PATRON_ITEMS' : true,
+ 'D_CHECKIN' : true,
+ 'D_CHECKIN_ITEMS' : true,
+
'D_PATRON_UTILS' : true,
'D_CIRC_TREE' : true,
--- /dev/null
+@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+@namespace html url("http://www.w3.org/TR/REC-html40");
+