1 sdump('D_TRACE','Loading patron_display.js\n');
3 function patron_display_init(p) {
4 sdump('D_PATRON_DISPLAY',"TESTING: patron_display.js: " + mw.G['main_test_variable'] + '\n');
5 sdump('D_CONSTRUCTOR',arg_dump(arguments));
7 p.clamshell = clam_shell_init( { 'w' : p.w, 'node' : p.clamshell_node, 'debug' : p.app } );
8 p.left_panel = p.clamshell.first_deck;
9 p.right_panel = p.clamshell.second_deck;
11 p.inner_left_clamshell = clam_shell_init( { 'w' : p.w, 'node' : p.left_panel.firstChild, 'debug' : p.app } );
12 p.inner_top_panel = p.inner_left_clamshell.first_deck;
13 p.inner_bottom_panel = p.inner_left_clamshell.second_deck;
15 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 } );
16 p.patron_items.register_patron_items_select_callback(
18 sdump('D_PATRON_DISPLAY','Firing patron_items_select_callback\n');
19 var patron_items = get_list_from_tree_selection( p.patron_items.tree_win.tree );
20 /* grab cover art for selected item? */
23 p.patron_items.register_flesh_patron_items_function(
25 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
26 var record_id = treeitem.getAttribute('record_id');
27 p.patron_items.map_patron_items_to_cols( p._patron.checkouts()[ record_id ], treeitem );
30 p.patron_items.register_context_builder(
32 /* add check-in and renew options */
33 empty_widget(p.patron_items.tree_win.popup);
34 var patron_items = get_list_from_tree_selection( p.patron_items.tree_win.tree );
35 var menuitem = p.patron_items.tree_win.document.createElement('menuitem');
36 p.patron_items.tree_win.popup.appendChild( menuitem );
37 menuitem.setAttribute('label','Open in OPAC');
38 menuitem.addEventListener(
41 for (var i = 0; i < patron_items.length; i++) {
42 spawn_patron_itemsdisplay(
43 p.w.app_shell,'new_tab','main_tabbox',
45 'circ' : retrieve_circ_by_id(
46 circs[i].getAttribute('record_id')
57 p.set_patron = function (au) {
58 return p._patron = au;
61 p.display_patron = function (au) {
62 if (au) p.set_patron(au);
63 p.patron_items.clear_patron_items();
64 if (!p._patron.checkouts()) patron_get_checkouts( p._patron );
65 for (var i = 0; i < p._patron.checkouts().length; i++) {
66 p.patron_items.add_patron_items( [ i ] );
68 return render_fm(p.w.document, { 'au' : p._patron });
71 p.retrieve_patron_via_barcode = function (barcode) {
72 if (!barcode) barcode = patron_get_barcode( p._patron );
73 p.set_patron( retrieve_patron_by_barcode( barcode ) );
74 return p.display_patron();
77 p.retrieve_patron_via_id = function (id) {
78 p.set_patron( retrieve_patron_by_id( id ) );
79 return p.display_patron();
82 p.refresh = function() {
83 if (p._patron) p.retrieve_patron_via_id( p._patron.id() );
87 if (typeof(p.patron) == 'object') {
91 p.retrieve_patron_via_barcode( p.patron );
94 p.commandset_node.getElementsByAttribute('id','cmd_patron_refresh')[0].addEventListener(
102 function gen_func(i) {
103 // because otherwise i would be 5 for each closure
104 return function(ev) {
105 dump('i = ' + i + '\n');
106 p.clamshell.set_second_deck(i);
109 var cmds = [ 'cmd_patron_checkout', 'cmd_patron_items', 'cmd_patron_holds',
110 'cmd_patron_bills', 'cmd_patron_edit', 'cmd_patron_info' ]
111 for (var i in cmds) {
112 p.commandset_node.getElementsByAttribute('id',cmds[i])[0].addEventListener(
119 sdump('D_TRACE_EXIT',arg_dump(arguments));