From: phasefx Date: Fri, 15 Jul 2005 15:16:27 +0000 (+0000) Subject: patron display and search working. have to remove some crud, and then do checkin... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=a6f46e6dedc0c9c277e84df8bbec344c867d6828;p=Evergreen.git patron display and search working. have to remove some crud, and then do checkin and checkout like I'm doing patron_items and search_results git-svn-id: svn://svn.open-ils.org/ILS/trunk@1204 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul index d475ed4103..b606a599a6 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul @@ -11,6 +11,7 @@ params.app = 'PatronDisplay'; params.clamshell_node = document.getElementById('ClamShell_main'); params.patron_items_node = document.getElementById('PatronItems_main'); + params.commandset_node = document.getElementById('universal_cmds'); params.popupset_node = document.getElementById('universal_popupset'); mw.focus_widget( document, 'PatronNavBar_refresh' ); mw.OpenILS_init(params);" diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js index e784763113..20f9a65679 100755 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js @@ -3,9 +3,7 @@ sdump('D_TRACE','Loading patron_display_status.js\n'); function patron_display_status_init(p) { sdump('D_PATRON_DISPLAY_STATUS',"TESTING: patron_display_status.js: " + mw.G['main_test_variable'] + '\n'); - if (p.app_shell) p.w.app_shell = p.app_shell; - - p.w.patron_name_label = get_widget( p.w.document, p.patron_name_label ); + p.patron_name_label = get_widget( p.w.document, p.patron_name_label ); if (p.show_name) { sdump('D_PATRON_DISPLAY_STATUS','Showing name label\n'); p.w.patron_name_label.hidden = false; diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js index a7f6d46dab..6b32c1a2d3 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js @@ -6,7 +6,7 @@ function patron_items_init(p) { p.patron_items_cols = circ_cols(); - p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cmd_next' : p.cmd_next, 'cmd_prev' : p.cmd_prev, 'cols' : p.patron_items_cols, 'hide_nav' : true, 'hits_per_page' : '9999', 'debug' : p.app } ); + p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_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; @@ -26,7 +26,7 @@ function patron_items_init(p) { } p.map_patron_items_to_cols = function (patron_items, treeitem) { - sdump('D_PATRON_ITEMS','p.map_patron_items_to_cols()\n'); + sdump('D_PATRON_ITEMS','p.map_patron_items_to_cols( ' + patron_items + ',' + treeitem + ')\n'); patron_items_tree_map_patron_items_to_cols(p, patron_items, treeitem); } diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.js index e488bc678d..48705936bd 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.js @@ -4,28 +4,137 @@ var test_variable = false; function patron_search_init(p) { sdump('D_PATRON_SEARCH',"TESTING: patron_search.js: " + mw.G['main_test_variable'] + '\n'); - sdump('D_TRACE_ENTER',arg_dump(arguments)); + sdump('D_CONSTRUCTOR',arg_dump(arguments)); + + /* gives: p.clamshell, p.right_panel, p.left_panel */ + patron_search_clamshell_init(p); + + /* gives: p.search_form */ + patron_search_patron_search_form_init(p); + + /* gives: p.search_results */ + patron_search_patron_search_results_init(p); - p.w.crazy_search = function (crazy_search_hash) { - sdump('D_TRACE_ENTER',arg_dump(arguments)); - sdump('D_TRACE_EXIT',arg_dump(arguments)); - return patron_search( p.w, crazy_search_hash ); + p.crazy_search = function (crazy_search_hash) { + return patron_search( crazy_search_hash ); }; - - p.w.result_tree = spawn_patron_search_results( - p.w.document, - 'new_iframe', - get_widget(p.w.document,p.right_panel), { - 'onload' : patron_init_after_patron_search_results(p) + + p.w.document.getElementById('PatronSearch_retrieve_button').addEventListener( + 'command', + function (ev) { + spawn_patron_display( + p.w.app_shell,'new_tab','main_tabbox', + { + 'patron' : retrieve_patron_by_id( + p._patron.id() + ) + } + ); } + ,false ); - sdump('D_TRACE_EXIT',arg_dump(arguments)); return; } -function patron_search(search_win, crazy_search_hash) { +function patron_search_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; +} + +function patron_search_patron_search_form_init(p) { + p.search_form = patron_search_form_init( { 'w' : p.w, 'node' : p.patron_search_form_node, 'debug' : p.ap } ); + p.search_form.register_search_callback( + function (ev) { + sdump('D_PATRON_SEARCH','Submitted: ' + js2JSON(p.search_form.crazy_search_hash) + '\n'); + if (p.crazy_search) { + p.search_results.clear_patrons(); + p.search_results.add_patrons( + p.crazy_search( p.search_form.crazy_search_hash ) + ); + } + } + ); +} + +function patron_search_patron_search_results_init(p) { + p.search_results = patron_search_results_init( { 'w' : p.w, 'node' : p.patron_search_results_node, 'popupset_node' : p.popupset_node, 'debug' : p.app } ); + + p.redraw_search_results = function() { + p.search_results.clear_search_results(); + if (!p._patron.checkouts()) patron_get_checkouts( p._patron ); + for (var i = 0; i < p._patron.checkouts().length; i++) { + p.search_results.add_search_results( [ i ] ); + } + } + + p.search_results.register_patron_select_callback( + function (ev) { + sdump('D_PATRON_SEARCH','Firing patron_select_callback\n'); + var patrons = get_list_from_tree_selection( p.search_results.paged_tree.tree ); + p._patron = retrieve_patron_by_id( patrons[ patrons.length - 1 ].getAttribute('record_id') ) + render_fm( p.w.document, { 'au' : p._patron } ); + } + ); + p.search_results.register_flesh_patron_function( + function (treeitem) { + sdump('D_PATRON_SEARCH','Firing flesh_patron_function\n'); + var record_id = treeitem.getAttribute('record_id'); + retrieve_patron_by_id( + record_id, + function (request) { + sdump('D_PATRON_SEARCH','flesh_patron callback\n'); + try { + var patron = request.getResultObject(); + sdump('D_PATRON_SEARCH','patron = ' + js2JSON( patron ) + '\n'); + try { + p.search_results.map_patron_to_cols( patron, treeitem ); + } catch(E) { + sdump('D_ERROR','map in flesh_patron callback\n' + E+ '\n'); + } + } catch(E) { + sdump('D_ERROR','flesh_patron callback\n' + E+ '\n'); + } + sdump('D_PATRON_SEARCH','leaving flesh_patron callback\n'); + } + ); + } + ); + p.search_results.register_context_builder( + function (ev) { + sdump('D_PATRON_DISPLAY','Firing context_builder\n'); + empty_widget(p.search_results.paged_tree.popup); + var search_results = get_list_from_tree_selection( p.search_results.paged_tree.tree ); + var menuitem; + + /*** PATRON DISPLAY ***/ + menuitem = p.search_results.paged_tree.w.document.createElement('menuitem'); + p.search_results.paged_tree.popup.appendChild( menuitem ); + menuitem.setAttribute('label',getString('patron.context_display')); + menuitem.addEventListener( + 'command', + function (ev) { + sdump('D_PATRON_DISPLAY','Firing renew context\n'); + for (var i = 0; i < search_results.length; i++) { + spawn_patron_display( + p.w.app_shell,'new_tab','main_tabbox', + { + 'patron' : retrieve_patron_by_id( + search_results[i].getAttribute('record_id') + ) + } + ); + } + }, + false + ); + } + ); +} + +function patron_search(crazy_search_hash) { sdump('D_PATRON_SEARCH',arg_dump(arguments)); sdump('D_TRACE_ENTER',arg_dump(arguments)); var result = []; @@ -43,103 +152,3 @@ function patron_search(search_win, crazy_search_hash) { return result; } -function patron_init_after_patron_search_form(p) { - sdump('D_PATRON_SEARCH',arg_dump(arguments)); - sdump('D_TRACE_ENTER',arg_dump(arguments)); - sdump('D_TRACE_EXIT',arg_dump(arguments)); - return function(form_w) { - sdump('D_PATRON_SEARCH',arg_dump(arguments)); - sdump('D_TRACE_ENTER',arg_dump(arguments)); - form_w.register_search_callback( - function (ev) { - sdump('D_PATRON_SEARCH','Submitted: ' + - js2JSON(form_w.crazy_search_hash) + '\n'); - if (p.w.crazy_search) { - p.w.result_tree.clear_patrons(); - p.w.result_tree.add_patrons( - p.w.crazy_search( form_w.crazy_search_hash ) - ); - } - } - ); - consider_Timeout( - function () { - sdump('D_TIMEOUT','******** timeout occurred after patron_search_form in patron_search.js\n'); - form_w.status_w = spawn_patron_display_status( - form_w.document, - 'new_iframe', - form_w.selection_canvas, - { 'show_name' : true, 'show_retrieve_button' : true, 'app_shell' : p.w.app_shell } - ); - }, 1 - ); - sdump('D_TRACE_EXIT',arg_dump(arguments)); - return; - }; -} - -function patron_init_after_patron_search_results(p) { - sdump('D_PATRON_SEARCH',arg_dump(arguments)); - sdump('D_TRACE_ENTER',arg_dump(arguments)); - sdump('D_TRACE_EXIT',arg_dump(arguments)); - return function(results_w) { - sdump('D_PATRON_SEARCH',arg_dump(arguments)); - sdump('D_TRACE_ENTER',arg_dump(arguments)); - results_w.register_patron_select_callback( - function (ev) { - sdump('D_PATRON_SEARCH','Firing patron_select_callback\n'); - var patrons = get_list_from_tree_selection( results_w.tree_win.tree ); - p.w.search_form.status_w.display_patron( - retrieve_patron_by_id( patrons[ patrons.length - 1 ].getAttribute('record_id') ) - ); - } - ); - results_w.register_flesh_patron_function( - function (treeitem) { - sdump('D_PATRON_SEARCH',arg_dump(arguments)); - user_async_request( - 'open-ils.actor', - 'open-ils.actor.user.fleshed.retrieve', - [ G.auth_ses[0], treeitem.getAttribute('record_id') ], - function (request) { - sdump('D_PATRON_SEARCH','In flesh_patron_function: ' + arg_dump(arguments)); - try { - var patron = request.getResultObject(); - sdump('D_PATRON_SEARCH','patron = ' + js2JSON( patron ) + '\n'); - results_w.map_patron_to_cols( patron, treeitem ); - } catch(E) { - sdump('D_ERROR',js2JSON(E) + '\n'); - } - } - ); - } - ); - results_w.register_context_builder( - function (ev) { - empty_widget(results_w.tree_win.popup); - var patrons = get_list_from_tree_selection( results_w.tree_win.tree ); - var menuitem = results_w.tree_win.document.createElement('menuitem'); - results_w.tree_win.popup.appendChild( menuitem ); - menuitem.setAttribute('label','Open in tab'); - menuitem.addEventListener( - 'command', - function (ev) { - for (var i = 0; i < patrons.length; i++) { - spawn_patron_display( - p.w.app_shell,'new_tab','main_tabbox', - { - 'patron' : retrieve_patron_by_id( - patrons[i].getAttribute('record_id') - ) - } - ); - } - }, - false - ); - } - ); - sdump('D_TRACE_EXIT',arg_dump(arguments)); - return; - }; -} diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul index 3910120b33..1122079460 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul @@ -7,10 +7,14 @@ diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.js b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.js index 9ec48ba905..448dc5a5b0 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.js +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.js @@ -2,57 +2,47 @@ sdump('D_TRACE','Loading patron_search_form.js\n'); function patron_search_form_init(p) { sdump('D_PATRON_SEARCH_FORM',"TESTING: patron_search_form.js: " + mw.G['main_test_variable'] + '\n'); - p.w.crazy_search_hash = {}; // hash[ field ] = { 'value' : ???, 'group' : ??? } + sdump('D_CONSTRUCTOR',arg_dump(arguments)); - var nl = p.w.document.getElementsByTagName('textbox'); - for (var i = 0; i < nl.length; i++) + p.crazy_search_hash = {}; // hash[ field ] = { 'value' : ???, 'group' : ??? } + + var nl = p.node.getElementsByTagName('textbox'); + for (var i = 0; i < nl.length; i++) { nl[i].addEventListener( 'change', function (ev) { return patron_search_form_textbox_handler( - p.w.document, ev.target, - p.w.crazy_search_hash); }, - false); - - p.w.selection_canvas = get_widget( p.w.document, p.selection_canvas ); + p.crazy_search_hash + ); + },false + ); + } - var search_command = p.w.document.getElementById('cmd_search'); - var clear_command = p.w.document.getElementById('cmd_clear'); + var search_button = p.node.getElementsByAttribute('name','button_search')[0]; + var clear_button = p.node.getElementsByAttribute('name','button_clear')[0]; - p.w.register_search_callback = function (f) { search_command.addEventListener( 'command',f,false ); }; + p.register_search_callback = function (f) { search_button.addEventListener( 'command',f,false ); }; - if (clear_command) - clear_command.addEventListener( + if (clear_button) { + clear_button.addEventListener( 'command', function (ev) { - var nl = p.w.document.getElementsByTagName('textbox'); + var nl = p.node.getElementsByTagName('textbox'); for (var i = 0; i < nl.length; i++) nl[i].value = ''; - p.w.crazy_search_hash = {}; }, - false); - else - sdump('D_PATRON_SEARCH_FORM',"No cmd_clear element.\n"); + p.crazy_search_hash = {}; + },false + ); + } else { + sdump('D_PATRON_SEARCH_FORM',"No name=button_clear element.\n"); + } - consider_Timeout( - function() { - sdump('D_TIMEOUT','******** timeout occurred in patron_search_form.js\n'); - 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 - ); - return; + return p; } -function patron_search_form_textbox_handler(doc,textbox,search_hash) { +function patron_search_form_textbox_handler(textbox,search_hash) { sdump('D_PATRON_SEARCH_FORM',arg_dump(arguments)); - textbox = get_widget(doc,textbox); var field = textbox.getAttribute('field'); var group = textbox.getAttribute('group'); var value = textbox.value; diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.xul index 5916ee71f1..9f31a39800 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.xul @@ -9,7 +9,6 @@ sizemode="maximized" persist="width height" onload="params.w = window; params.app = 'PatronSearchForm'; - params.selection_canvas = 'PatronSearchForm_selection'; mw.OpenILS_init(params);" onunload="mw.OpenILS_exit(params);" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> diff --git a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form_overlay.xul b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form_overlay.xul index 3df78e27a7..f3ec05bffa 100644 --- a/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form_overlay.xul +++ b/Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form_overlay.xul @@ -10,9 +10,6 @@ - - - @@ -22,7 +19,7 @@ - + @@ -82,11 +79,11 @@ -