<iframe id="print_frame" flex="1"/>
<iframe id="scratch_pad" flex="1"/>
</deck>
+ <button label="Console" accesskey="C" oncommand="try {mw.spawn_javascript_console(mw.document,'new_window','',{}); } catch(E) { alert(E); }"/>
</box>
<groupbox id="main_groupbox" flex="1">
sdump('D_TRACE','Loading circ_tree.js\n');
-var circ_cols = [
+
+function checkin_by_copy_barcode(barcode) {
+ sdump('D_CIRC_UTILS',arg_dump(arguments,{0:true}));
+ try {
+ var check = user_request(
+ 'open-ils.circ',
+ 'open-ils.circ.checkin.barcode',
+ [ mw.G.auth_ses[0], barcode ]
+ )[0];
+ sdump('D_CIRC_UTILS','check = ' + check + '\n');
+ return check;
+ } catch(E) {
+ sdump('D_ERROR',E);
+ return null;
+ }
+}
+
+
+function circ_cols() {
+ return [
{
'id' : 'barcode', 'label' : getString('acp_label_barcode'), 'flex' : 1,
'primary' : true, 'hidden' : false, 'fm_class' : 'acp', 'fm_field_render' : '.barcode()'
'primary' : false, 'hidden' : false, 'fm_class' : 'mvr', 'fm_field_render' : '.author()'
}
- ];
-
+ ]
+};
-function circ_tree_init(p) {
- sdump('D_CIRC_TREE',"TESTING: circ_tree.js: " + mw.G['main_test_variable'] + '\n');
- sdump('D_TRACE_ENTER',arg_dump(arguments));
-
- p.w.register_circ_select_callback = function (f) {
- p.w._circ_select_callback = f;
- }
-
- p.w.register_flesh_circ_function = function (f) {
- p.w._flesh_circ_function = f;
- }
-
- p.w.register_context_builder = function (f) {
- p.w._context_function = f;
- }
- p.w.map_circ_to_cols = function (circ, treeitem) {
- circ_tree_map_circ_to_cols(p, circ, treeitem);
- }
-
- consider_Timeout(
- function() {
- sdump('D_TIMEOUT','***** timeout occured circ_tree.js');
- p.w.tree_win = spawn_paged_tree(
- p.w.document, 'new_iframe', p.paged_tree, {
- 'hide_nav' : true,
- 'hits_per_page' : 99999,
- 'cols' : p.w.circ_cols,
- 'onload' : circ_tree_init_after_paged_tree(p)
- }
- );
- consider_Timeout(
- function () {
- sdump('D_TIMEOUT','***** timeout timeout occured circ_tree.js');
- if (p.onload) {
- try {
- sdump('D_TRACE','trying psuedo-onload: ' + p.onload + '\n');
- p.onload(p.w);
- } catch(E) {
- sdump('D_ERROR', js2JSON(E) + '\n' );
- }
- }
- }, 0
- );
- }, 0
- );
-
- sdump('D_TRACE_EXIT',arg_dump(arguments));
- return;
-}
-
-function circ_tree_init_after_paged_tree(p) {
- sdump('D_CIRC_TREE',arg_dump(arguments));
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- var result = function (tree_win) {
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- sdump('D_CIRC_TREE',arg_dump(arguments));
- tree_win.register_select_callback( p.w._circ_select_callback );
- tree_win.register_flesh_row_function( p.w._flesh_circ_function );
- tree_win.register_context_builder( p.w._context_function );
- p.w.add_circs = tree_win.add_rows;
- p.w.clear_circs = tree_win.clear_tree;
- consider_Timeout(
- function() {
- sdump('D_TIMEOUT','***** timeout after paged_tree occured circ_tree.js');
- try {
- if (p.paged_tree_onload) p.paged_tree_onload(tree_win);
- } catch(E) {
- sdump('D_ERROR', js2JSON(E) + '\n' );
- }
- }, 0
- );
- sdump('D_TRACE_EXIT',arg_dump(arguments));
- return;
- };
- sdump('D_TRACE_EXIT',arg_dump(arguments));
- return result;
-}
-
-function circ_tree_map_circ_to_cols(p, circ, treeitem) {
- sdump('D_CIRC_TREE',arg_dump(arguments,{1:true}));
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- var cols = new Array();
- for (var i = 0; i < p.w.circ_cols.length; i++) {
- var hash = p.w.circ_cols[i];
- sdump('D_CIRC_TREE','Considering ' + js2JSON(hash) + '\n');
- var obj_string;
- switch( hash.fm_class ) {
- case 'acp' : obj_string = 'circ.copy'; break;
- case 'circ' : obj_string = 'circ.circ'; break;
- case 'mvr' : obj_string = 'circ.record'; break;
- }
- var cmd = parse_render_string( obj_string, hash.fm_field_render );
- sdump('D_CIRC_TREE','cmd = ' + cmd + '\n');
- var col = '';
- try {
- col = eval( cmd );
- sdump('D_CIRC_TREE','eval = ' + col + '\n');
- } catch(E) {
- sdump('D_ERROR',js2JSON(E) + '\n');
- }
- cols.push( col );
- }
- sdump('D_CIRC_TREE','cols = ' + js2JSON(cols) + '\n');
- p.w.tree_win.map_cols_to_treeitem( cols, treeitem );
- sdump('D_TRACE_EXIT',arg_dump(arguments));
-}
p.treecols = p.tree.firstChild;
p.tc = p.tree.lastChild;
- p._context_function = function (ev) {};
+ p._context_function = function (ev) { alert('default _context_function'); };
p.popup.addEventListener('popupshowing',function (ev) { return p._context_function(ev); },false);
- p._select_callback = function (ev) {};
+ p._select_callback = function (ev) { alert('default _select_callback'); };
p.tree.addEventListener('select',function (ev) { return p._select_callback(ev); },false);
paged_tree_make_columns( p, p.treecols, p.cols )
p.clear_tree = function () {
+ sdump('D_PAGED_TREE','p.clear_tree()\n');
empty_widget( p.w.document, p.tc );
p.current_idx = 0;
return paged_tree_update_nav(p);
}
p.add_rows = function (ids) {
+ sdump('D_PAGED_TREE','p.add_rows()\n');
return paged_tree_add_rows(p,p.tc,ids);
}
p.register_flesh_row_function = function (f) {
+ sdump('D_PAGED_TREE','p.register_flesh_row_function(' + f + ')\n');
return p._flesh_row_function = f;
}
p.register_select_callback = function (f) {
+ sdump('D_PAGED_TREE','p.register_select_callback(' + f + ')\n');
return p._select_callback = f;
}
p.register_context_builder = function (f) {
+ sdump('D_PAGED_TREE','p.register_context_builder(' + f + ')\n');
return p._context_function = f;
}
} else {
p.display_count = parseInt( p.hits_per_page_menu.getAttribute('value') );
}
- p.hits_per_page_menu.addEventListener(
- 'command',
- function (ev) {
- sdump('D_TRACE','In set_hits handler\n');
- alert('testing123');
- try {
- p.display_count = parseInt( p.hits_per_page_menu.getAttribute('value') );
- paged_tree_update_visibility( p );
- paged_tree_update_nav( p );
- paged_tree_flesh_records( p );
- } catch(E) {
- sdump('D_ERROR',js2JSON(E)+'\n');
- }
- sdump('D_TRACE','Leaving set_hits handler\n');
- },
- false
- );
- p.set_hits_per_page = function () {
+ p.set_hits_per_page = function (ev) {
try {
p.display_count = parseInt( p.hits_per_page_menu.getAttribute('value') );
paged_tree_update_visibility( p );
sdump('D_ERROR',js2JSON(E)+'\n');
}
}
+ p.hits_per_page_menu.addEventListener(
+ 'command',
+ p.set_hits_per_page,
+ false
+ );
var cmd_next = p.commandset_node.getElementsByAttribute('id', 'cmd_tree_next' )[0];
cmd_next.addEventListener(
}
function paged_tree_flesh_record(p,treeitem) {
+ sdump('D_PAGED_TREE',arg_dump(arguments));
sdump('D_TRACE_ENTER',arg_dump(arguments));
treeitem.setAttribute('retrieved','true');
if (p._flesh_row_function) {
}
function paged_tree_flesh_records(p) {
+ sdump('D_PAGED_TREE',arg_dump(arguments));
sdump('D_TRACE_ENTER',arg_dump(arguments));
for (var i = 0; i < p.tc.childNodes.length; i++) {
var treeitem = p.tc.childNodes[i];
}
function paged_tree_update_nav(p) {
+ sdump('D_PAGED_TREE',arg_dump(arguments));
sdump('D_TRACE_ENTER',arg_dump(arguments));
if (p.results_label)
p.results_label.setAttribute('value', p.tc.childNodes.length );
}
function paged_tree_update_visibility(p) {
+ sdump('D_PAGED_TREE',arg_dump(arguments));
sdump('D_TRACE_ENTER',arg_dump(arguments));
for (var i = 0; i < p.tc.childNodes.length; i++) {
var treeitem = p.tc.childNodes[i];
}
function paged_tree_nav_next(p) {
+ sdump('D_PAGED_TREE',arg_dump(arguments));
sdump('D_TRACE_ENTER',arg_dump(arguments));
var proposed_idx = p.current_idx + p.display_count;
if (proposed_idx >= p.tc.childNodes.length)
}
function paged_tree_nav_prev(p) {
+ sdump('D_PAGED_TREE',arg_dump(arguments));
sdump('D_TRACE_ENTER',arg_dump(arguments));
var proposed_idx = p.current_idx - p.display_count;
if (proposed_idx < 0)
sdump('D_PATRON_DISPLAY',"TESTING: patron_display.js: " + mw.G['main_test_variable'] + '\n');
sdump('D_CONSTRUCTOR',arg_dump(arguments));
- 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;
- p.inner_left_clamshell = clam_shell_init( { 'w' : p.w, 'node' : p.left_panel.firstChild, 'debug' : p.app } );
- p.inner_top_panel = p.inner_left_clamshell.first_deck;
- p.inner_bottom_panel = p.inner_left_clamshell.second_deck;
+ // gives: p.clamshell, p.right_panel, p.left_panel, p.inner_left_clamshell, p.inner_top_panel, p.inner_bottom_panel
+ patron_display_clamshell_init(p);
- p.patron_items = patron_items_init( { 'w' : p.w, 'node' : p.patron_items_node, 'popupset_node' : p.popupset_node, 'commandset_node' : p.commandset_node, 'debug' : p.app } );
- p.patron_items.register_patron_items_select_callback(
- function (ev) {
- sdump('D_PATRON_DISPLAY','Firing patron_items_select_callback\n');
- var patron_items = get_list_from_tree_selection( p.patron_items.tree_win.tree );
- /* grab cover art for selected item? */
- }
- );
- p.patron_items.register_flesh_patron_items_function(
- function (treeitem) {
- sdump('D_PATRON_DISPLAY',arg_dump(arguments));
- var record_id = treeitem.getAttribute('record_id');
- p.patron_items.map_patron_items_to_cols( p._patron.checkouts()[ record_id ], treeitem );
- }
- );
- p.patron_items.register_context_builder(
- function (ev) {
- /* add check-in and renew options */
- empty_widget(p.patron_items.tree_win.popup);
- var patron_items = get_list_from_tree_selection( p.patron_items.tree_win.tree );
- var menuitem = p.patron_items.tree_win.document.createElement('menuitem');
- p.patron_items.tree_win.popup.appendChild( menuitem );
- menuitem.setAttribute('label','Open in OPAC');
- menuitem.addEventListener(
- 'command',
- function (ev) {
- for (var i = 0; i < patron_items.length; i++) {
- spawn_patron_itemsdisplay(
- p.w.app_shell,'new_tab','main_tabbox',
- {
- 'circ' : retrieve_circ_by_id(
- circs[i].getAttribute('record_id')
- )
- }
- );
- }
- },
- false
- );
- }
- );
+ // gives: p.patron_items, p.redraw_patron_items
+ patron_display_patron_items_init(p);
p.set_patron = function (au) {
return p._patron = au;
p.display_patron = function (au) {
if (au) p.set_patron(au);
- p.patron_items.clear_patron_items();
- if (!p._patron.checkouts()) patron_get_checkouts( p._patron );
- for (var i = 0; i < p._patron.checkouts().length; i++) {
- p.patron_items.add_patron_items( [ i ] );
- }
+ p.redraw_patron_items();
return render_fm(p.w.document, { 'au' : p._patron });
}
if (p._patron) p.retrieve_patron_via_id( p._patron.id() );
}
- if (p.patron) {
- if (typeof(p.patron) == 'object') {
- p._patron = p.patron;
- p.display_patron();
- } else
- p.retrieve_patron_via_barcode( p.patron );
- }
-
p.commandset_node.getElementsByAttribute('id','cmd_patron_refresh')[0].addEventListener(
'command',
function (ev) {
);
}
+ if (p.patron) {
+ if (typeof(p.patron) == 'object') {
+ p._patron = p.patron;
+ p.display_patron();
+ } else
+ p.retrieve_patron_via_barcode( p.patron );
+ }
+
sdump('D_TRACE_EXIT',arg_dump(arguments));
return p;
}
+function patron_display_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;
+
+ p.inner_left_clamshell = clam_shell_init( { 'w' : p.w, 'node' : p.left_panel.firstChild, 'debug' : p.app } );
+ p.inner_top_panel = p.inner_left_clamshell.first_deck;
+ p.inner_bottom_panel = p.inner_left_clamshell.second_deck;
+}
+
+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, 'commandset_node' : p.commandset_node, 'debug' : p.app } );
+
+ p.redraw_patron_items = function() {
+ p.patron_items.clear_patron_items();
+ if (!p._patron.checkouts()) patron_get_checkouts( p._patron );
+ for (var i = 0; i < p._patron.checkouts().length; i++) {
+ p.patron_items.add_patron_items( [ i ] );
+ }
+ }
+
+ p.patron_items.register_patron_items_select_callback(
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing patron_items_select_callback\n');
+ var patron_items = get_list_from_tree_selection( p.patron_items.paged_tree.tree );
+ /* grab cover art for selected item? */
+ }
+ );
+ p.patron_items.register_flesh_patron_items_function(
+ function (treeitem) {
+ sdump('D_PATRON_DISPLAY','Firing flesh_patron_items_function\n');
+ var record_id = treeitem.getAttribute('record_id');
+ p.patron_items.map_patron_items_to_cols( p._patron.checkouts()[ record_id ], treeitem );
+ }
+ );
+ p.patron_items.register_context_builder(
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing context_builder\n');
+ empty_widget(p.patron_items.paged_tree.popup);
+ var patron_items = get_list_from_tree_selection( p.patron_items.paged_tree.tree );
+ var menuitem;
+
+ /*** CHECKIN ***/
+ menuitem = p.patron_items.paged_tree.w.document.createElement('menuitem');
+ p.patron_items.paged_tree.popup.appendChild( menuitem );
+ menuitem.setAttribute('label',getString('circ.check_in'));
+ menuitem.addEventListener(
+ 'command',
+ function (ev) {
+ sdump('D_PATRON_DISPLAY','Firing check-in context\n');
+ for (var i = 0; i < patron_items.length; i++) {
+ try {
+ var idx = patron_items[i].getAttribute('record_id');
+ var copy = p._patron.checkouts()[ idx ].copy;
+ alert( checkin_by_copy_barcode( copy.barcode() ) );
+ } catch(E) {
+ alert(E);
+ }
+ }
+ },
+ false
+ );
+
+ /*** OPAC ***/
+ menuitem = p.patron_items.paged_tree.w.document.createElement('menuitem');
+ p.patron_items.paged_tree.popup.appendChild( menuitem );
+ menuitem.setAttribute('label','Open in OPAC');
+ menuitem.addEventListener(
+ 'command',
+ function (ev) {
+ for (var i = 0; i < patron_items.length; i++) {
+ spawn_patron_items.display(
+ p.w.app_shell,'new_tab','main_tabbox',
+ {
+ 'circ' : retrieve_circ_by_id(
+ patron_items[i].getAttribute('record_id')
+ )
+ }
+ );
+ }
+ },
+ false
+ );
+
+ }
+ );
+}
+
+
sdump('D_PATRON_ITEMS',"TESTING: patron_items.js: " + mw.G['main_test_variable'] + '\n');
sdump('D_CONSTRUCTOR',arg_dump(arguments));
- p.patron_items_cols = circ_cols; /* clone if you're going to modify. ie. js2JSON(JSON2js(circ_cols)); */
+ p.patron_items_cols = circ_cols();
- p._patron_items_select_callback = function(){};
- p._flesh_patron_items_function = function(){};
- p._context_function = function(){};
+ p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'commandset_node' : p.commandset_node, 'cols' : p.patron_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } );
+ p.add_patron_items = p.paged_tree.add_rows;
+ p.clear_patron_items = p.paged_tree.clear_tree;
p.register_patron_items_select_callback = function (f) {
- p._patron_items_select_callback = f;
+ sdump('D_PATRON_ITEMS','p.register_patron_items_select_callback(' + f + ')\n');
+ p.paged_tree.register_select_callback( f );
}
p.register_flesh_patron_items_function = function (f) {
- p._flesh_patron_items_function = f;
+ sdump('D_PATRON_ITEMS','p.register_flesh_patron_items_function(' + f + ')\n');
+ p.paged_tree.register_flesh_row_function( f );
}
p.register_context_builder = function (f) {
- p._context_function = f;
+ sdump('D_PATRON_ITEMS','p.register_context_builder(' + f + ')\n');
+ p.paged_tree.register_context_builder( f );
}
p.map_patron_items_to_cols = function (patron_items, treeitem) {
+ sdump('D_PATRON_ITEMS','p.map_patron_items_to_cols()\n');
patron_items_tree_map_patron_items_to_cols(p, patron_items, treeitem);
}
- p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'commandset_node' : p.commandset_node, 'cols' : p.patron_items_cols, 'debug' : p.app } );
- p.paged_tree.register_select_callback( p._patron_items_select_callback );
- p.paged_tree.register_flesh_row_function( p._flesh_patron_items_function );
- p.paged_tree.register_context_builder( p._context_function );
- p.add_patron_items = p.paged_tree.add_rows;
- p.clear_patron_items = p.paged_tree.clear_tree;
-
-
sdump('D_TRACE_EXIT',arg_dump(arguments));
return p;
}
function patron_items_tree_map_patron_items_to_cols(p, patron_items, treeitem) {
- sdump('D_CIRC_TREE',arg_dump(arguments,{1:true}));
+ sdump('D_PATRON_ITEMS',arg_dump(arguments,{1:true}));
sdump('D_TRACE_ENTER',arg_dump(arguments));
var cols = new Array();
for (var i = 0; i < p.patron_items_cols.length; i++) {
var hash = p.patron_items_cols[i];
- sdump('D_CIRC_TREE','Considering ' + js2JSON(hash) + '\n');
+ sdump('D_PATRON_ITEMS','Considering ' + js2JSON(hash) + '\n');
var obj_string;
switch( hash.fm_class ) {
case 'acp' : obj_string = 'patron_items.copy'; break;
- case 'patron_items' : obj_string = 'patron_items.patron_items'; break;
+ case 'circ' : obj_string = 'patron_items.circ'; break;
case 'mvr' : obj_string = 'patron_items.record'; break;
}
var cmd = parse_render_string( obj_string, hash.fm_field_render );
- sdump('D_CIRC_TREE','cmd = ' + cmd + '\n');
+ sdump('D_PATRON_ITEMS','cmd = ' + cmd + '\n');
var col = '';
try {
col = eval( cmd );
- sdump('D_CIRC_TREE','eval = ' + col + '\n');
+ sdump('D_PATRON_ITEMS','eval = ' + col + '\n');
} catch(E) {
sdump('D_ERROR',js2JSON(E) + '\n');
}
cols.push( col );
}
- sdump('D_CIRC_TREE','cols = ' + js2JSON(cols) + '\n');
- p.w.tree_win.map_cols_to_treeitem( cols, treeitem );
+ sdump('D_PATRON_ITEMS','cols = ' + js2JSON(cols) + '\n');
+ p.paged_tree.map_cols_to_treeitem( cols, treeitem );
sdump('D_TRACE_EXIT',arg_dump(arguments));
}
'open-ils.circ.actor.user.checked_out',
[ mw.G.auth_ses[0], au.id() ]
)[0] );
- sdump('D_PATRON_UTILS','checkouts = ' + js2JSON(au._checkouts) + '\n');
+ sdump('D_PATRON_UTILS','checkouts = ' + js2JSON(au.checkouts()) + '\n');
return au.checkouts();
} catch(E) {
sdump('D_ERROR',js2JSON(E) + '\n');
'D_NONE' : false,
'D_ALL' : false,
'D_ERROR' : true,
- 'D_TRACE' : true,
+ 'D_TRACE' : false,
'D_TRACE_ENTER' : false,
'D_TRACE_EXIT' : false,
- 'D_TIMEOUT' : true,
- 'D_FILTER' : true,
+ 'D_TIMEOUT' : false,
+ 'D_FILTER' : false,
'D_CONSTRUCTOR' : true,
'D_CLAM' : false,
- 'D_PAGED_TREE' : false,
+ 'D_PAGED_TREE' : true,
'D_TAB' : false,
'D_AUTH' : false,
'D_OPAC' : false,
- 'D_PATRON_SEARCH' : false,
- 'D_PATRON_SEARCH_FORM' : false,
- 'D_PATRON_SEARCH_RESULTS' : false,
+ 'D_PATRON_SEARCH' : true,
+ 'D_PATRON_SEARCH_FORM' : true,
+ 'D_PATRON_SEARCH_RESULTS' : true,
'D_PATRON_DISPLAY' : true,
'D_PATRON_DISPLAY_STATUS' : true,
'D_FM_UTILS' : false,
'D_PRINT' : false,
'D_SES' : true,
- 'D_SPAWN' : true,
+ 'D_SPAWN' : false,
'D_STRING' : false,
'D_UTIL' : false,
'D_WIN' : false,
filter_console_label=FCONSOLE
retrieving.record=Retrieving...
+circ.check_in=Check In
au_label_id=Record ID
au_label_prefix=Prefix
-au_label_id=Record ID
-au_label_prefix=Prefix
-au_label_family_name=Family Name
-au_label_first_given_name=First Name
-au_label_second_given_name=Middle Name
-au_label_suffix=Suffix