From b7433291b4953d1ce8b08c4ea3ed501a4a57a26d Mon Sep 17 00:00:00 2001 From: phasefx Date: Tue, 12 Jul 2005 19:18:25 +0000 Subject: [PATCH] circ_tree git-svn-id: svn://svn.open-ils.org/ILS/trunk@1155 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../chrome/content/evergreen/Open-ILS/OpenILS.js | 2 + .../evergreen/Open-ILS/OpenILS_scripts_overlay.xul | 1 + .../chrome/content/evergreen/circ/circ_tree.js | 172 +++++++++++++++++++++ .../chrome/content/evergreen/circ/circ_tree.xul | 34 ++++ .../content/evergreen/circ/circ_tree_overlay.xul | 24 +++ .../content/evergreen/patron/patron_display.js | 72 ++++++++- .../chrome/content/evergreen/util/error.js | 6 +- .../chrome/content/evergreen/util/spawn_win.js | 5 + 8 files changed, 313 insertions(+), 3 deletions(-) create mode 100644 Evergreen/staff_client/chrome/content/evergreen/circ/circ_tree.js create mode 100644 Evergreen/staff_client/chrome/content/evergreen/circ/circ_tree.xul create mode 100644 Evergreen/staff_client/chrome/content/evergreen/circ/circ_tree_overlay.xul diff --git a/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS.js b/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS.js index 2de431cf88..2014eb1f42 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS.js +++ b/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS.js @@ -15,6 +15,7 @@ function OpenILS_init(params) { case 'PatronDisplay' : patron_display_init(params); break; case 'PatronDisplayStatus' : patron_display_status_init(params); break; case 'PatronDisplayContact' : patron_display_contact_init(params); break; + case 'CircTree' : circ_tree_init(params); break; } } catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); } @@ -47,6 +48,7 @@ function OpenILS_exit(params) { case 'PatronDisplay' : patron_display_exit(params); break; case 'PatronDisplayStatus' : patron_display_status_exit(params); break; case 'PatronDisplayContact' : patron_display_contact_exit(params); break; + case 'CircTree' : circ_tree_exit(params); break; } } catch(E) { sdump('D_ERROR',js2JSON(E)+'\n'); } diff --git a/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS_scripts_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS_scripts_overlay.xul index 5a5c35bdbe..73ea07980a 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS_scripts_overlay.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/Open-ILS/OpenILS_scripts_overlay.xul @@ -18,6 +18,7 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Evergreen/staff_client/chrome/content/evergreen/circ/circ_tree_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/circ/circ_tree_overlay.xul new file mode 100644 index 0000000000..a2a70ee473 --- /dev/null +++ b/Evergreen/staff_client/chrome/content/evergreen/circ/circ_tree_overlay.xul @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js index 7eeb44d40a..f7d5fb95c6 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.js @@ -43,7 +43,6 @@ function patron_display_init(p) { } ); - sdump('D_TRACE_EXIT',arg_dump(arguments)); return; } @@ -59,12 +58,35 @@ function patron_display_init_after_clamshell(p) { 'onload' : patron_display_init_after_inner_clamshell(p) } ); + p.w.item_tree = spawn_circ_tree( + clamshell_w.document, + 'new_iframe', + clamshell_w.second_deck, { + 'paged_tree_onload' : patron_display_init_after_item_tree_paged_tree(p), + 'onload' : patron_display_init_after_item_tree(p) + } + ); + return; }; } +function patron_display_init_after_item_tree_paged_tree(p) { + sdump('D_PATRON_DISPLAY',arg_dump(arguments)); + return function (tree_win) { + sdump('D_TRACE','<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n'); + if (p.w._patron) { + sdump('D_TRACE','>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n'); + if (!p.w._patron.checkouts()) patron_get_checkouts( p.w._patron ); + for (var i = 0; i < p.w._patron.checkouts().length; i++) { + p.w.item_tree.add_circs( [ i ] ); + } + } + }; +}; + function patron_display_init_after_inner_clamshell(p) { sdump('D_PATRON_DISPLAY',arg_dump(arguments)); return function (clamshell_w) { @@ -87,3 +109,51 @@ function patron_display_init_after_inner_clamshell(p) { }; } +function patron_display_init_after_item_tree(p) { + sdump('D_PATRON_DISPLAY',arg_dump(arguments)); + return function (item_tree_w) { + sdump('D_PATRON_DISPLAY',arg_dump(arguments)); + item_tree_w.register_circ_select_callback( + function (ev) { + sdump('D_PATRON_DISPLAY','Firing circ_select_callback\n'); + var circs = get_list_from_tree_selection( item_tree_w.tree_win.tree ); + /* grab cover art for selected item? */ + } + ); + item_tree_w.register_flesh_circ_function( + function (treeitem) { + sdump('D_PATRON_DISPLAY',arg_dump(arguments)); + /* A little kludgy if the patron's checkouts change while the list is being navigated, but since + there is no network traffic, it may be worth clearing and rebuilding the tree when updating */ + var record_id = treeitem.getAttribute('record_id'); + item_tree_w.map_circ_to_cols( p.w._patron.checkouts()[ record_id ], treeitem ); + } + ); + item_tree_w.register_context_builder( + function (ev) { + /* add check-in and renew options */ + empty_widget(item_tree_w.tree_win.popup); + var circs = get_list_from_tree_selection( item_tree_w.tree_win.tree ); + var menuitem = item_tree_w.tree_win.document.createElement('menuitem'); + item_tree_w.tree_win.popup.appendChild( menuitem ); + menuitem.setAttribute('label','Open in OPAC'); + menuitem.addEventListener( + 'command', + function (ev) { + for (var i = 0; i < circs.length; i++) { + spawn_circ_display( + p.w.app_shell,'new_tab','main_tabbox', + { + 'circ' : retrieve_circ_by_id( + circs[i].getAttribute('record_id') + ) + } + ); + } + }, + false + ); + } + ); + }; +} diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/error.js b/Evergreen/staff_client/chrome/content/evergreen/util/error.js index c3fd013136..522f58d7de 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/error.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/error.js @@ -31,12 +31,14 @@ var sdump_levels = { 'D_PATRON_DISPLAY_CONTACT' : true, 'D_PATRON_UTILS' : true, + + 'D_CIRC_TREE' : true, 'D_EXPLODE' : false, - 'D_FM_UTILS' : true, + 'D_FM_UTILS' : false, 'D_PRINT' : false, 'D_SES' : true, - 'D_SPAWN' : false, + 'D_SPAWN' : true, 'D_STRING' : false, 'D_UTIL' : false, 'D_WIN' : false, diff --git a/Evergreen/staff_client/chrome/content/evergreen/util/spawn_win.js b/Evergreen/staff_client/chrome/content/evergreen/util/spawn_win.js index 7d4f8a27c1..a6416b46e3 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/util/spawn_win.js +++ b/Evergreen/staff_client/chrome/content/evergreen/util/spawn_win.js @@ -69,6 +69,11 @@ function spawn_circ_display(d,placement,place,passthru_params) { return spawn_interface(d,placement,place,chrome,getString('display_patron_interface_label'),passthru_params); } +function spawn_circ_tree(d,placement,place,passthru_params) { + var chrome = 'chrome://evergreen/content/circ/circ_tree.xul'; + return spawn_interface(d,placement,place,chrome,'circ_tree',passthru_params); +} + function spawn_circ_list(d,placement,place,passthru_params) { var chrome = 'chrome://evergreen/content/circ/circ_list.xul'; return spawn_interface(d,placement,place,chrome,getString('items_out_interface_label'),passthru_params); -- 2.11.0