]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.js
Various stuff to find a speed bottleneck. It was the register_window function. need...
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / patron / patron_search.js
1 sdump('D_TRACE','Loading patron_search.js\n');
2
3 var test_variable = false;
4
5 function patron_search_init(p) {
6         sdump('D_PATRON_SEARCH',"TESTING: patron_search.js: " + mw.G['main_test_variable'] + '\n');
7         sdump('D_TRACE_ENTER',arg_dump(arguments));
8
9         var clamshell = spawn_clamshell( 
10                 p.w.document, 'new_iframe', p.clamshell, { 
11                         'onload' : patron_search_init_after_clamshell(p) 
12                 }
13         );
14
15         p.w.crazy_search = function (crazy_search_hash) {
16                 sdump('D_TRACE_ENTER',arg_dump(arguments));
17                 sdump('D_TRACE_EXIT',arg_dump(arguments));
18                 return patron_search( p.w, crazy_search_hash );
19         };
20         sdump('D_TRACE_EXIT',arg_dump(arguments));
21         return;
22 }
23
24 function patron_search(search_win, crazy_search_hash) {
25         sdump('D_PATRON_SEARCH',arg_dump(arguments));
26         sdump('D_TRACE_ENTER',arg_dump(arguments));
27         var result = [];
28         try {
29                 result = user_request(
30                         'open-ils.actor',
31                         'open-ils.actor.patron.search.advanced',
32                         [ G.auth_ses[0], crazy_search_hash ]
33                 )[0];
34                 sdump('D_PATRON_SEARCH','result.length = ' + result.length + '\n');
35         } catch(E) {
36                 handle_error(E);
37         }
38         sdump('D_TRACE_EXIT',arg_dump(arguments));
39         return result;
40 }
41
42 function patron_search_init_after_clamshell(p) {
43         sdump('D_PATRON_SEARCH',arg_dump(arguments));
44         sdump('D_TRACE_ENTER',arg_dump(arguments));
45         sdump('D_TRACE_EXIT',arg_dump(arguments));
46         return function (clamshell_w) {
47                 sdump('D_PATRON_SEARCH',arg_dump(arguments));
48                 sdump('D_TRACE_ENTER',arg_dump(arguments));
49                 p.w.search_form = spawn_patron_search_form(
50                         clamshell_w.document, 
51                         'new_iframe', 
52                         clamshell_w.first_deck, {
53                                 'onload' : patron_init_after_patron_search_form(p)
54                         }
55                 );
56
57                 p.w.result_tree = spawn_patron_search_results(
58                         clamshell_w.document, 
59                         'new_iframe', 
60                         clamshell_w.second_deck, {
61                                 'onload' : patron_init_after_patron_search_results(p)
62                         }
63                 );
64                 sdump('D_TRACE_EXIT',arg_dump(arguments));
65                 return;
66         };
67 }
68
69 function patron_init_after_patron_search_form(p) {
70         sdump('D_PATRON_SEARCH',arg_dump(arguments));
71         sdump('D_TRACE_ENTER',arg_dump(arguments));
72         sdump('D_TRACE_EXIT',arg_dump(arguments));
73         return function(form_w) {
74                 sdump('D_PATRON_SEARCH',arg_dump(arguments));
75                 sdump('D_TRACE_ENTER',arg_dump(arguments));
76                 form_w.register_search_callback(
77                         function (ev) {
78                                 sdump('D_PATRON_SEARCH','Submitted: ' + 
79                                         js2JSON(form_w.crazy_search_hash) + '\n');
80                                 if (p.w.crazy_search) {
81                                         p.w.result_tree.add_patrons(
82                                                 p.w.crazy_search( form_w.crazy_search_hash )
83                                         );
84                                 }
85                         }
86                 );
87                 sdump('D_TRACE_EXIT',arg_dump(arguments));
88                 return;
89         };
90 }
91
92 function patron_init_after_patron_search_results(p) {
93         sdump('D_PATRON_SEARCH',arg_dump(arguments));
94         sdump('D_TRACE_ENTER',arg_dump(arguments));
95         sdump('D_TRACE_EXIT',arg_dump(arguments));
96         return function(results_w) {
97                 sdump('D_PATRON_SEARCH',arg_dump(arguments));
98                 sdump('D_TRACE_ENTER',arg_dump(arguments));
99                 results_w.register_patron_select_callback(
100                         function (ev) {
101                                 alert('Selected: ' + 
102                                         js2JSON(results_w.selection_id) + '\n');
103                         }
104                 );
105                 results_w.register_flesh_patron_function(
106                         function (treeitem) {
107                                 sdump('D_PATRON_SEARCH',arg_dump(arguments));
108                                 user_async_request(
109                                         'open-ils.actor',
110                                         'open-ils.actor.user.fleshed.retrieve',
111                                         [ G.auth_ses[0], treeitem.getAttribute('record_id') ],
112                                         function (request) {
113                                                 sdump('D_PATRON_SEARCH','In flesh_patron_function: ' + arg_dump(arguments));
114                                                 try {
115                                                         var patron = request.getResultObject();
116                                                         sdump('D_PATRON_SEARCH','patron = ' + js2JSON( patron ) + '\n');
117                                                         results_w.map_patron_to_cols( patron, treeitem );
118                                                 } catch(E) {
119                                                         sdump('D_ERROR',js2JSON(E) + '\n');
120                                                 }
121                                         }
122                                 );
123                         }
124                 );
125                 sdump('D_TRACE_EXIT',arg_dump(arguments));
126                 return;
127         };
128 }