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_TRACE_ENTER',arg_dump(arguments));
7 p.w.set_patron = function (au) {
8 return p.w._patron = au;
10 p.w.display_patron = function (au) {
11 if (au) p.w.set_patron(au);
13 p.w.status_w.display_patron();
15 p.w.contact_w.display_patron();
16 return render_fm(p.w.document, { 'au' : p.w._patron });
18 p.w.retrieve_patron_via_barcode = function (barcode) {
19 if (!barcode) barcode = patron_get_barcode( p.w._patron );
20 p.w.set_patron( retrieve_patron_by_barcode( barcode ) );
21 return p.w.display_patron();
23 p.w.retrieve_patron_via_id = function (id) {
24 p.w.set_patron( retrieve_patron_by_id( id ) );
25 return p.w.display_patron();
27 p.w.refresh = function() {
28 p.w.retrieve_patron_via_id( p.w._patron.id() );
32 if (typeof(p.patron) == 'object') {
33 p.w._patron = p.patron;
36 p.w.retrieve_patron_via_barcode( p.patron );
39 sdump('D_TRACE','******** SETTING TIMEOUT\n');
42 sdump('D_TRACE','******** TIMEOUT OCCURRED\n');
43 p.w.clamshell = spawn_clamshell(
44 p.w.document, 'new_iframe', p.clamshell, {
46 'onload' : patron_display_init_after_clamshell(p)
52 sdump('D_TRACE','******** AFTER SETTING TIMEOUT\n');
54 sdump('D_TRACE_EXIT',arg_dump(arguments));
58 function patron_display_init_after_clamshell(p) {
59 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
60 return function (clamshell_w) {
61 p.w.inner_clamshell = spawn_clamshell_vertical(
64 clamshell_w.first_deck, {
66 'onload' : patron_display_init_after_inner_clamshell(p)
69 p.w.item_tree = spawn_circ_tree(
72 clamshell_w.second_deck, {
73 'paged_tree_onload' : patron_display_init_after_item_tree_paged_tree(p),
74 'onload' : patron_display_init_after_item_tree(p)
84 function patron_display_init_after_item_tree_paged_tree(p) {
85 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
86 return function (tree_win) {
87 sdump('D_TRACE','<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n');
89 sdump('D_TRACE','>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n');
90 if (!p.w._patron.checkouts()) patron_get_checkouts( p.w._patron );
91 for (var i = 0; i < p.w._patron.checkouts().length; i++) {
92 p.w.item_tree.add_circs( [ i ] );
98 function patron_display_init_after_inner_clamshell(p) {
99 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
100 return function (clamshell_w) {
101 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
102 p.w.status_w = spawn_patron_display_status(
103 clamshell_w.document,
105 clamshell_w.first_deck, {
106 'patron' : p.w._patron
109 p.w.contact_w = spawn_patron_display_contact(
110 clamshell_w.document,
112 clamshell_w.second_deck, {
113 'patron' : p.w._patron
120 function patron_display_init_after_item_tree(p) {
121 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
122 return function (item_tree_w) {
123 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
124 item_tree_w.register_circ_select_callback(
126 sdump('D_PATRON_DISPLAY','Firing circ_select_callback\n');
127 var circs = get_list_from_tree_selection( item_tree_w.tree_win.tree );
128 /* grab cover art for selected item? */
131 item_tree_w.register_flesh_circ_function(
132 function (treeitem) {
133 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
134 /* A little kludgy if the patron's checkouts change while the list is being navigated, but since
135 there is no network traffic, it may be worth clearing and rebuilding the tree when updating */
136 var record_id = treeitem.getAttribute('record_id');
137 item_tree_w.map_circ_to_cols( p.w._patron.checkouts()[ record_id ], treeitem );
140 item_tree_w.register_context_builder(
142 /* add check-in and renew options */
143 empty_widget(item_tree_w.tree_win.popup);
144 var circs = get_list_from_tree_selection( item_tree_w.tree_win.tree );
145 var menuitem = item_tree_w.tree_win.document.createElement('menuitem');
146 item_tree_w.tree_win.popup.appendChild( menuitem );
147 menuitem.setAttribute('label','Open in OPAC');
148 menuitem.addEventListener(
151 for (var i = 0; i < circs.length; i++) {
153 p.w.app_shell,'new_tab','main_tabbox',
155 'circ' : retrieve_circ_by_id(
156 circs[i].getAttribute('record_id')