(cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/patron_items/g | sed s/PagedTree/PatronItems/g > chrome/content/evergreen/patron/patron_items_overlay.xul )
(cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/patron_search_results/g | sed s/PagedTree/PatronSearchResults/g > chrome/content/evergreen/patron/patron_search_results_overlay.xul )
(cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/patron_checkout_items/g | sed s/PagedTree/PatronCheckoutItems/g > chrome/content/evergreen/patron/patron_checkout_items_overlay.xul )
+ (cat chrome/content/evergreen/main/paged_tree_overlay.xul | sed s/paged_tree/patron_holds/g | sed s/PagedTree/PatronHolds/g > chrome/content/evergreen/patron/patron_holds_overlay.xul )
(cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_items.dtd)
(cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_search_results.dtd)
(cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_checkout_items.dtd)
+ (cp chrome/locale/en-US/evergreen/paged_tree.dtd chrome/locale/en-US/evergreen/patron_holds.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 )
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/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/conf/client_config.xml
rm -f chrome/content/evergreen/util/fieldmapper.js
<script src="chrome://evergreen/content/patron/patron_display.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/patron/patron_holds.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" />
}
}
+function hold_cols() {
+ var cols = [
+{
+ 'id' : 'capture_time', 'label' : getString('ahr_capture_time_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_class' : 'ahr', 'fm_field_render' : '.capture_time()'
+},
+{
+ 'id' : 'current_copy', 'label' : getString('ahr_current_copy_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.current_copy()'
+},
+{
+ 'id' : 'email_notify', 'label' : getString('ahr_email_notify_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_class' : 'ahr', 'fm_field_render' : '.email_notify()'
+},
+{
+ 'id' : 'expire_time', 'label' : getString('ahr_expire_time_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_class' : 'ahr', 'fm_field_render' : '.expire_time()'
+},
+{
+ 'id' : 'fulfillment_time', 'label' : getString('ahr_fulfillment_time_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_class' : 'ahr', 'fm_field_render' : '.fulfillment_time()'
+},
+{
+ 'id' : 'hold_type', 'label' : getString('ahr_hold_type_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : false, 'fm_class' : 'ahr', 'fm_field_render' : '.hold_type()'
+},
+{
+ 'id' : 'holdable_formats', 'label' : getString('ahr_holdable_formats_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.holdable_formats()'
+},
+{
+ 'id' : 'id', 'label' : getString('ahr_id_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.id()'
+},
+{
+ 'id' : 'ischanged', 'label' : getString('ahr_ischanged_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.ischanged()'
+},
+{
+ 'id' : 'isdeleted', 'label' : getString('ahr_isdeleted_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.isdeleted()'
+},
+{
+ 'id' : 'isnew', 'label' : getString('ahr_isnew_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.isnew()'
+},
+{
+ 'id' : 'phone_notify', 'label' : getString('ahr_phone_notify_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.phone_notify()'
+},
+{
+ 'id' : 'pickup_lib', 'label' : getString('ahr_pickup_lib_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.pickup_lib()'
+},
+{
+ 'id' : 'prev_check_time', 'label' : getString('ahr_prev_check_time_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.prev_check_time()'
+},
+{
+ 'id' : 'request_time', 'label' : getString('ahr_request_time_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.request_time()'
+},
+{
+ 'id' : 'requestor', 'label' : getString('ahr_requestor_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.requestor()'
+},
+{
+ 'id' : 'selection_depth', 'label' : getString('ahr_selection_depth_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.selection_depth()'
+},
+{
+ 'id' : 'target', 'label' : getString('ahr_target_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.target()'
+},
+{
+ 'id' : 'usr', 'label' : getString('ahr_usr_label'), 'flex' : 1,
+ 'primary' : false, 'hidden' : true, 'fm_class' : 'ahr', 'fm_field_render' : '.usr()'
+}
+ ];
+ return cols;
+}
+
function checkin_cols() {
var cols = [
{
// gives: p.patron_checkout_items, p.redraw_patron_checkout_items
patron_display_patron_checkout_items_init(p);
+ // gives: p.patron_holds, p.redraw_patron_holds
+ patron_display_patron_holds_init(p);
+
p.set_patron = function (au) {
return p._patron = au;
}
p.display_patron = function (au) {
if (au) p.set_patron(au);
- p.redraw_patron_items();
p.redraw_patron_checkout_items();
+ p.redraw_patron_items();
+ p.redraw_patron_holds();
return render_fm(p.w.document, { 'au' : p._patron });
}
}
function patron_display_patron_items_init(p) {
- p.patron_items = patron_items_init( { 'w' : p.w, 'node' : p.patron_items_node, 'popupset_node' : p.popupset_node, 'debug' : p.app } );
+ p.patron_items = patron_items_init( { 'w' : p.w, 'node' : p.patron_items_node, 'debug' : p.app } );
p.redraw_patron_items = function() {
p.patron_items.clear_patron_items();
}
function patron_display_patron_checkout_items_init(p) {
- p.patron_checkout_items = patron_checkout_items_init( { 'w' : p.w, 'node' : p.patron_checkout_items_node, 'popupset_node' : p.popupset_node, 'debug' : p.app } );
+ p.patron_checkout_items = patron_checkout_items_init( { 'w' : p.w, 'node' : p.patron_checkout_items_node, 'debug' : p.app } );
var tb = p.patron_checkout_items_node.getElementsByAttribute('id','patron_checkout_barcode_entry_textbox')[0];
var submit_button = p.patron_checkout_items_node.getElementsByAttribute('id','patron_checkout_submit_barcode_button')[0];
);
}
+function patron_display_patron_holds_init(p) {
+ p.patron_holds = patron_holds_init( { 'w' : p.w, 'node' : p.patron_holds_node, 'debug' : p.app } );
+
+ p.redraw_patron_holds = function() {
+ p.patron_holds.clear_patron_holds();
+ if (!p._patron.hold_requests()) patron_get_holds( p._patron );
+ for (var i = 0; i < p._patron.hold_requests().length; i++) {
+ p.patron_holds.add_patron_holds( [ i ] );
+ }
+ }
+
+ p.patron_holds.register_patron_holds_select_callback(
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing patron_holds_select_callback\n');
+ sdump('D_PATRON_DISPLAY','ev.target = ' + ev.target + '\n');
+ var patron_holds = get_list_from_tree_selection( p.patron_holds.paged_tree.tree );
+ /* grab cover art for selected item? */
+ }
+ );
+ p.patron_holds.register_flesh_patron_holds_function(
+ function (treeitem) {
+ sdump('D_PATRON_DISPLAY','Firing flesh_patron_holds_function\n');
+ var record_id = treeitem.getAttribute('record_id');
+ p.patron_holds.map_patron_holds_to_cols( p._patron.hold_requests()[ record_id ], treeitem );
+ }
+ );
+ p.patron_holds.register_item_context_builder(
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing context_builder for patron_holds\n');
+ sdump('D_PATRON_DISPLAY','ev.target = ' + ev.target + '\np.patron_holds.paged_tree.popup = ' + p.patron_holds.paged_tree.popup + '\n');
+ empty_widget(p.patron_holds.paged_tree.popup);
+ var patron_holds = get_list_from_tree_selection( p.patron_holds.paged_tree.tree );
+ sdump('D_PATRON_DISPLAY','patron_holds.length = ' + patron_holds.length + '\n');
+
+ /*** COPY EDITOR ***/
+ var menuitem_pi_ce = p.patron_holds.paged_tree.w.document.createElement('menuitem');
+ p.patron_holds.paged_tree.popup.appendChild( menuitem_pi_ce );
+ menuitem_pi_ce.setAttribute('label',getString('circ.context_edit'));
+ menuitem_pi_ce.addEventListener(
+ 'command',
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing copy editor context for patron_holds\n');
+ for (var i = 0; i < patron_holds.length; i++) {
+ sdump('D_PATRON_DISPLAY','Firing copy edit context\n');
+ }
+ },
+ false
+ );
+
+ /*** OPAC ***/
+ var menuitem_pi_o = p.patron_holds.paged_tree.w.document.createElement('menuitem');
+ p.patron_holds.paged_tree.popup.appendChild( menuitem_pi_o );
+ menuitem_pi_o.setAttribute('label',getString('circ.context_opac'));
+ menuitem_pi_o.addEventListener(
+ 'command',
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing opac context for patron_holds\n');
+ for (var i = 0; i < patron_holds.length; i++) {
+ sdump('D_PATRON_DISPLAY','Firing opac context\n');
+ }
+ },
+ false
+ );
+
+ }
+ );
+}
+
<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_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');
- mw.focus_widget( document, 'patron_checkout_barcode_entry_textbox' );
- mw.OpenILS_init(params);"
- onunload="mw.OpenILS_exit(params);"
+ onload="try {
+ params.w = window;
+ params.app = 'PatronDisplay';
+ params.clamshell_node = document.getElementById('ClamShell_main');
+ params.patron_items_node = document.getElementById('PatronItems_main');
+ params.patron_checkout_items_node = document.getElementById('PatronCheckoutItems_main');
+ params.patron_holds_node = document.getElementById('PatronHolds_main');
+ params.commandset_node = document.getElementById('universal_cmds');
+ mw.focus_widget( document, 'patron_checkout_barcode_entry_textbox' );
+ mw.OpenILS_init(params);
+ } catch(E) {
+ alert(E);
+ }"
+ onunload="try { mw.OpenILS_exit(params); } catch(E) { alert(E); }"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script>mw.sdump('D_TRACE','Loading patron_display.xul\n');</script>
<?xul-overlay href="chrome://evergreen/content/patron/patron_checkout_items_overlay.xul"?>
<?xul-overlay href="chrome://evergreen/content/patron/patron_display_status_overlay.xul"?>
<?xul-overlay href="chrome://evergreen/content/patron/patron_display_contact_overlay.xul"?>
+ <?xul-overlay href="chrome://evergreen/content/patron/patron_holds_overlay.xul"?>
<commandset id="universal_cmds">
<caption id="cssdgb2c" label="&patron_navbar.items;"/>
<box id="PatronItems_main" />
</groupbox>
- <box id="PatronHolds_main"><label value="holds" /></box>
+ <groupbox id="cssdgb3">
+ <caption id="cssdgb3c" label="&patron_navbar.items;"/>
+ <box id="PatronHolds_main" />
+ </groupbox>
<box id="PatronBills_main"><label value="bills" /></box>
<box id="PatronEdit_main"><label value="edit" /></box>
<box id="PatronInfo_main"><label value="info" /></box>
--- /dev/null
+sdump('D_TRACE','Loading patron_holds.js\n');
+
+function patron_holds_init(p) {
+ sdump('D_PATRON_HOLDS',"TESTING: patron_holds.js: " + mw.G['main_test_variable'] + '\n');
+ sdump('D_CONSTRUCTOR',arg_dump(arguments));
+
+ p.patron_holds_cols = hold_cols();
+
+ p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'cols' : p.patron_holds_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } );
+ p.add_patron_holds = p.paged_tree.add_rows;
+ p.clear_patron_holds = p.paged_tree.clear_tree;
+
+ p.register_patron_holds_select_callback = function (f) {
+ sdump('D_PATRON_HOLDS','p.register_patron_holds_select_callback(' + f + ')\n');
+ p.paged_tree.register_select_callback( f );
+ }
+
+ p.register_flesh_patron_holds_function = function (f) {
+ sdump('D_PATRON_HOLDS','p.register_flesh_patron_holds_function(' + f + ')\n');
+ p.paged_tree.register_flesh_row_function( f );
+ }
+
+ p.register_item_context_builder = function (f) {
+ sdump('D_PATRON_HOLDS','p.register_context_builder(' + f + ')\n');
+ p.paged_tree.register_context_builder( f );
+ }
+
+ p.map_patron_holds_to_cols = function (patron_holds, treeitem) {
+ sdump('D_PATRON_HOLDS','p.map_patron_holds_to_cols( ' + patron_holds + ',' + treeitem + ')\n');
+ patron_holds_tree_map_patron_holds_to_cols(p, patron_holds, treeitem);
+ }
+
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+ return p;
+}
+
+function patron_holds_tree_map_patron_holds_to_cols(p, patron_holds, treeitem) {
+ sdump('D_PATRON_HOLDS',arg_dump(arguments,{1:true}));
+ sdump('D_TRACE_ENTER',arg_dump(arguments));
+ var cols = new Array();
+ for (var i = 0; i < p.patron_holds_cols.length; i++) {
+ var hash = p.patron_holds_cols[i];
+ sdump('D_PATRON_HOLDS','Considering ' + js2JSON(hash) + '\n');
+ var obj_string = 'patron_holds';
+ switch( hash.fm_class ) {
+ case 'acp' : obj_string = 'patron_holds.copy'; break;
+ case 'circ' : obj_string = 'patron_holds.circ'; break;
+ case 'mvr' : obj_string = 'patron_holds.record'; break;
+ }
+ var cmd = parse_render_string( obj_string, hash.fm_field_render );
+ sdump('D_PATRON_HOLDS','cmd = ' + cmd + '\n');
+ var col = '';
+ try {
+ col = eval( cmd );
+ sdump('D_PATRON_HOLDS','eval = ' + col + '\n');
+ } catch(E) {
+ sdump('D_ERROR',js2JSON(E) + '\n');
+ }
+ cols.push( col );
+ }
+ sdump('D_PATRON_HOLDS','cols = ' + js2JSON(cols) + '\n');
+ p.paged_tree.map_cols_to_treeitem( cols, treeitem );
+ sdump('D_TRACE_EXIT',arg_dump(arguments));
+}
mvr_label_title=Title
mvr_label_author=Author
+ahr_capture_time_label=Capture Time
+ahr_current_copy_label=Current Copy
+ahr_email_notify_label=Email Notify
+ahr_expire_time_label=Expire Time
+ahr_fulfillment_time_label=Fulfillment Time
+ahr_hold_type_label=Hold Type
+ahr_holdable_formats_label=Holdable Formats
+ahr_id_label=Id
+ahr_ischanged_label=Ischanged
+ahr_isdeleted_label=Isdeleted
+ahr_isnew_label=Isnew
+ahr_phone_notify_label=Phone Notify
+ahr_pickup_lib_label=Pickup Lib
+ahr_prev_check_time_label=Prev Check Time
+ahr_request_time_label=Request Time
+ahr_requestor_label=Requestor
+ahr_selection_depth_label=Selection Depth
+ahr_target_label=Target
+ahr_usr_label=Usr
+