patron display and search working. have to remove some crud, and then do checkin...
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 15 Jul 2005 15:16:27 +0000 (15:16 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 15 Jul 2005 15:16:27 +0000 (15:16 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@1204 dcc99617-32d9-48b4-a31d-7c20da2025e4

13 files changed:
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display.xul
Evergreen/staff_client/chrome/content/evergreen/patron/patron_display_status.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_items.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.xul
Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form.xul
Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_form_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_overlay.xul
Evergreen/staff_client/chrome/content/evergreen/patron/patron_search_results.js
Evergreen/staff_client/chrome/content/evergreen/patron/patron_utils.js
Evergreen/staff_client/chrome/content/evergreen/util/ses.js
Evergreen/staff_client/chrome/locale/en-US/evergreen/OpenILS.properties

index d475ed4..b606a59 100755 (executable)
@@ -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);"
index e784763..20f9a65 100755 (executable)
@@ -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;
index a7f6d46..6b32c1a 100644 (file)
@@ -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);  
        }
 
index e488bc6..4870593 100644 (file)
@@ -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;
-       };
-}
index 3910120..1122079 100644 (file)
@@ -7,10 +7,14 @@
 <page id="patron_search_win"
        orient="vertical" style="overflow: auto" width="800" height="500"
        sizemode="maximized" persist="width height" 
-       onload="params.clamshell = 'PatronSearch_clamshell'; 
-               params.right_panel = 'PatronSearch_right_panel';
-               params.w = window; 
+       onload="params.w = window;
                params.app = 'PatronSearch'; 
+               params.clamshell_node = document.getElementById('ClamShell_main'); 
+               params.patron_display_status_node = document.getElementById('PatronDisplayStatus_main');
+               params.patron_search_form_node = document.getElementById('PatronSearchForm_main');
+               params.patron_search_results_node = document.getElementById('PatronSearchResults_main');
+               params.popupset_node = document.getElementById('universal_popupset');
+               mw.focus_widget( document, 'pst1' );
                mw.OpenILS_init(params);"
        onunload="mw.OpenILS_exit(params);"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
index 9ec48ba..448dc5a 100644 (file)
@@ -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;
index 5916ee7..9f31a39 100644 (file)
@@ -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">
index 3df78e2..f3ec05b 100644 (file)
@@ -10,9 +10,6 @@
        <command id="cmd_broken" oncommand="
                alert('Not Yet Implemented'); "/>
 
-       <command id="cmd_patron_search_form_search" />
-       <command id="cmd_patron_search_form_clear" />
-
 </commandset>
 
 <!-- main widget for patron_search_form -->
@@ -22,7 +19,7 @@
                <caption id="psgf_gbc" label='&patron_search_form.caption;' />
                <grid id="psg" />
        </groupbox>
-       <groupbox id="PatronDisplayStatus_groupbox">
+       <groupbox id="PatronDisplayStatus_groupbox" name="selection_canvas"/>
 </box>
 
 <!-- group 0 = user  group 1 = address  group 2 = phone, ident -->
                </row>
                <row id="psr12">
                        <spacer id="pss12"/>
-                       <button id="psb12" label="&patron_search_form.search.label;" accesskey="&patron_search_form.search.accesskey;" command="cmd_search"/>
+                       <button id="psb12" label="&patron_search_form.search.label;" accesskey="&patron_search_form.search.accesskey;" name="button_search"/>
                </row>
                <row id="psr13">
                        <spacer id="pss13"/>
-                       <button id="psb13" label="&patron_search_form.clear.label;" accesskey="&patron_search_form.clear.accesskey;" command="cmd_clear"/>
+                       <button id="psb13" label="&patron_search_form.clear.label;" accesskey="&patron_search_form.clear.accesskey;" name="button_clear"/>
                </row>
        </rows>
 </grid>
index 7e19978..8ff185a 100644 (file)
 </box>
 
 <deck id="ClamShell_first_deck">
-       <box id="PatronSearchForm_main">
+       <box id="PatronSearchForm_main"/>
 </deck>
 
 <deck id="ClamShell_second_deck">
-
+       <box id="PatronSearchResults_main"/>
 </deck>
 
-<hbox id="PatronSearch_DisplayStatus_insert1"/>
+<hbox id="PatronSearch_DisplayStatus_insert1">
        <label id="PatronSearch_patron_name" class="patronNameMedium"
                tooltiptext="&patron_display.name.label;"
                value=" "
                render="true" fm_class="au" 
                render_value="patron_get_full_name($$)" />
 </hbox>
-<hbox id="PatronSearch_DisplayStatus_insert2"/>
+<hbox id="PatronSearch_DisplayStatus_insert2">
        <button id="PatronSearch_retrieve_button" 
                label="&patron_navbar.retrieve;" 
                accesskey="&patron_navbar.retrieve.accesskey;"/>
index 1f29ddf..4e828bd 100644 (file)
@@ -4,7 +4,7 @@ function patron_search_results_init(p) {
        sdump('D_PATRON_SEARCH_RESULTS',"TESTING: patron_search_results.js: " + mw.G['main_test_variable'] + '\n');
        sdump('D_TRACE_ENTER',arg_dump(arguments));
 
-       p.w.patron_cols = [
+       p.patron_cols = [
                { 
                        'id' : 'id_col', 'label' : getString('au_label_id'), 'flex' : 1, 
                        'primary' : true, 'hidden' : false, 'fm_field_render' : '.id()'
@@ -31,70 +31,40 @@ function patron_search_results_init(p) {
                }
        ];
 
-        p.w.tree_win = spawn_paged_tree(
-                p.w.document, 'new_iframe', p.paged_tree, { 
-                       'cols' : p.w.patron_cols,
-                       'onload' : patron_search_results_init_after_paged_tree(p) 
-               }
-        );
+       p.paged_tree = paged_tree_init( { 'w' : p.w, 'node' : p.node, 'popupset_node' : p.popupset_node, 'cols' : p.patron_cols, 'debug' : p.app } );
+       p.add_patrons = p.paged_tree.add_rows;
+       p.clear_patrons = p.paged_tree.clear_tree;
 
-       p.w.register_patron_select_callback = function (f) {
-               p.w._patron_select_callback = f;
+       p.register_patron_select_callback = function (f) {
+               sdump('D_PATRON_SEARCH_RESULTS','p.register_patron_select_callback(' + f + ')\n');
+               p.paged_tree.register_select_callback( f );
        }
 
-       p.w.register_flesh_patron_function = function (f) {
-               p.w._flesh_patron_function = f;
+       p.register_flesh_patron_function = function (f) {
+               sdump('D_PATRON_SEARCH_RESULTS','p.register_flesh_patron_function(' + f + ')\n');
+               p.paged_tree.register_flesh_row_function( f );
        }
 
-       p.w.register_context_builder = function (f) {
-               p.w._context_function = f;
+       p.register_context_builder = function (f) {
+               sdump('D_PATRON_SEARCH_RESULTS','p.register_context_builder(' + f + ')\n');
+               p.paged_tree.register_context_builder( f );
        }
 
-       p.w.map_patron_to_cols = function (patron, treeitem) {
+       p.map_patron_to_cols = function (patron, treeitem) {
+               sdump('D_PATRON_SEARCH_RESULTS','p.map_patron_to_cols(' + patron + ',' + treeitem + ')\n');
                patron_search_results_map_patron_to_cols(p, patron, treeitem);  
        }
 
-       consider_Timeout(
-               function() {
-                       sdump('D_TIMEOUT','******** timeout occurred in patron_search_results.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
-       );
-       sdump('D_TRACE_EXIT',arg_dump(arguments));
-       return;
-}
-
-function patron_search_results_init_after_paged_tree(p) {
-       sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
-       sdump('D_TRACE_ENTER',arg_dump(arguments));
-       var result = function (tree_win) {
-               sdump('D_TRACE_ENTER',arg_dump(arguments));
-               sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
-               tree_win.register_select_callback( p.w._patron_select_callback );
-               tree_win.register_flesh_row_function( p.w._flesh_patron_function );
-               tree_win.register_context_builder( p.w._context_function );
-               p.w.add_patrons = tree_win.add_rows;
-               p.w.clear_patrons = tree_win.clear_tree;
-               sdump('D_TRACE_EXIT',arg_dump(arguments));
-               return;
-       };
        sdump('D_TRACE_EXIT',arg_dump(arguments));
-       return result;
+       return p;
 }
 
 function patron_search_results_map_patron_to_cols(p, patron, treeitem) {
        sdump('D_PATRON_SEARCH_RESULTS',arg_dump(arguments));
        sdump('D_TRACE_ENTER',arg_dump(arguments));
        var cols = new Array();
-       for (var i = 0; i < p.w.patron_cols.length; i++) {
-               var hash = p.w.patron_cols[i];
+       for (var i = 0; i < p.patron_cols.length; i++) {
+               var hash = p.patron_cols[i];
                sdump('D_PATRON_SEARCH_RESULTS','Considering ' + js2JSON(hash) + '\n');
                var cmd = 'patron'+hash.fm_field_render;
                sdump('D_PATRON_SEARCH_RESULTS','cmd = ' + cmd + '\n');
@@ -108,6 +78,6 @@ function patron_search_results_map_patron_to_cols(p, patron, treeitem) {
                cols.push( col );
        }
        sdump('D_PATRON_SEARCH_RESULTS','cols = ' + js2JSON(cols) + '\n');
-       p.w.tree_win.map_cols_to_treeitem( cols, treeitem );
+       p.paged_tree.map_cols_to_treeitem( cols, treeitem );
        sdump('D_TRACE_EXIT',arg_dump(arguments));
 }
index 42322d8..fe4a7c3 100755 (executable)
@@ -209,31 +209,44 @@ function patron_get_standing_css_style( value ) {
        }
 }
 
-function retrieve_patron_by_barcode( barcode ) {
+function retrieve_patron_by_barcode( barcode, f ) {
        sdump('D_PATRON_UTILS',arg_dump(arguments));
        if (!barcode) return null;
-       return retrieve_patron_by_method( barcode, 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve_by_barcode' );
+       return retrieve_patron_by_method( barcode, 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve_by_barcode', f );
 }
 
-function retrieve_patron_by_id( id ) {
+function retrieve_patron_by_id( id, f ) {
        sdump('D_PATRON_UTILS',arg_dump(arguments));
        if (!id) return null;
-       return retrieve_patron_by_method( id, 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve' );
+       return retrieve_patron_by_method( id, 'open-ils.actor', 'open-ils.actor.user.fleshed.retrieve', f );
 }
 
-function retrieve_patron_by_method( id, app, method ) {
+function retrieve_patron_by_method( id, app, method, f ) {
        sdump('D_PATRON_UTILS',arg_dump(arguments));
        if (!id) return null;
-       try {
-               var au = user_request(
-                       app,
-                       method,
-                       [ mw.G.auth_ses[0], id ]
-               )[0];
-               return au;
-       } catch(E) {
-               handle_error(E);
-               return null;
+       if (f) {
+               try {
+                       user_async_request(
+                               app,
+                               method,
+                               [ mw.G.auth_ses[0], id ],
+                               f
+                       );
+               } catch(E) {
+                       sdump('D_ERROR',E);
+               }
+       } else {
+               try {
+                       var au = user_request(
+                               app,
+                               method,
+                               [ mw.G.auth_ses[0], id ]
+                       )[0];
+                       return au;
+               } catch(E) {
+                       sdump('D_ERROR',E);
+                       return null;
+               }
        }
 }
 
index 1e7ad5e..54b6381 100644 (file)
@@ -80,8 +80,8 @@ function user_request(app,name,params) {
 }
 
 function user_async_request(app,name,params,func) {
-       sdump('D_SES','=-=-=-=-= user_async_request: ' + js2JSON(func) + '\n');
-       sdump('D_SES','request '+(app)+' '+(name)+' '+js2JSON(params)+'\n');
+       sdump('D_SES','=-=-=-=-= user_async_request:\n');
+       sdump('D_SES','request '+(app)+' '+(name)+' '+js2JSON(params)+ ' ' + func + '\n');
        var request = new RemoteRequest( app, name );
        for(var index in params) {
                request.addParam(params[index]);
index 4ff7e0f..8b6a04f 100644 (file)
@@ -25,7 +25,8 @@ retrieving.record=Retrieving...
 circ.context_checkin=Check In
 circ.context_renew=Renew
 circ.context_opac=Show Title in OPAC
-circ.context_editor=Edit Copy
+circ.context_edit=Edit Copy
+patron.context_display=Retrieve Patron
 
 au_label_id=Record ID
 au_label_prefix=Prefix