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 p.w.clamshell = spawn_clamshell(
40 p.w.document, 'new_iframe', p.clamshell, {
42 'onload' : patron_display_init_after_clamshell(p)
46 sdump('D_TRACE_EXIT',arg_dump(arguments));
50 function patron_display_init_after_clamshell(p) {
51 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
52 return function (clamshell_w) {
53 p.w.inner_clamshell = spawn_clamshell_vertical(
56 clamshell_w.first_deck, {
58 'onload' : patron_display_init_after_inner_clamshell(p)
61 p.w.item_tree = spawn_circ_tree(
64 clamshell_w.second_deck, {
65 'paged_tree_onload' : patron_display_init_after_item_tree_paged_tree(p),
66 'onload' : patron_display_init_after_item_tree(p)
76 function patron_display_init_after_item_tree_paged_tree(p) {
77 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
78 return function (tree_win) {
79 sdump('D_TRACE','<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n');
81 sdump('D_TRACE','>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n');
82 if (!p.w._patron.checkouts()) patron_get_checkouts( p.w._patron );
83 for (var i = 0; i < p.w._patron.checkouts().length; i++) {
84 p.w.item_tree.add_circs( [ i ] );
90 function patron_display_init_after_inner_clamshell(p) {
91 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
92 return function (clamshell_w) {
93 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
94 p.w.status_w = spawn_patron_display_status(
97 clamshell_w.first_deck, {
98 'patron' : p.w._patron
101 p.w.contact_w = spawn_patron_display_contact(
102 clamshell_w.document,
104 clamshell_w.second_deck, {
105 'patron' : p.w._patron
112 function patron_display_init_after_item_tree(p) {
113 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
114 return function (item_tree_w) {
115 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
116 item_tree_w.register_circ_select_callback(
118 sdump('D_PATRON_DISPLAY','Firing circ_select_callback\n');
119 var circs = get_list_from_tree_selection( item_tree_w.tree_win.tree );
120 /* grab cover art for selected item? */
123 item_tree_w.register_flesh_circ_function(
124 function (treeitem) {
125 sdump('D_PATRON_DISPLAY',arg_dump(arguments));
126 /* A little kludgy if the patron's checkouts change while the list is being navigated, but since
127 there is no network traffic, it may be worth clearing and rebuilding the tree when updating */
128 var record_id = treeitem.getAttribute('record_id');
129 item_tree_w.map_circ_to_cols( p.w._patron.checkouts()[ record_id ], treeitem );
132 item_tree_w.register_context_builder(
134 /* add check-in and renew options */
135 empty_widget(item_tree_w.tree_win.popup);
136 var circs = get_list_from_tree_selection( item_tree_w.tree_win.tree );
137 var menuitem = item_tree_w.tree_win.document.createElement('menuitem');
138 item_tree_w.tree_win.popup.appendChild( menuitem );
139 menuitem.setAttribute('label','Open in OPAC');
140 menuitem.addEventListener(
143 for (var i = 0; i < circs.length; i++) {
145 p.w.app_shell,'new_tab','main_tabbox',
147 'circ' : retrieve_circ_by_id(
148 circs[i].getAttribute('record_id')