]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/patron/patron_search.js
clear tree before adding rows. put consoleDump back in
[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.clear_patrons();
82                                         p.w.result_tree.add_patrons(
83                                                 p.w.crazy_search( form_w.crazy_search_hash )
84                                         );
85                                 }
86                         }
87                 );
88                 sdump('D_TRACE_EXIT',arg_dump(arguments));
89                 return;
90         };
91 }
92
93 function patron_init_after_patron_search_results(p) {
94         sdump('D_PATRON_SEARCH',arg_dump(arguments));
95         sdump('D_TRACE_ENTER',arg_dump(arguments));
96         sdump('D_TRACE_EXIT',arg_dump(arguments));
97         return function(results_w) {
98                 sdump('D_PATRON_SEARCH',arg_dump(arguments));
99                 sdump('D_TRACE_ENTER',arg_dump(arguments));
100                 results_w.register_patron_select_callback(
101                         function (ev) {
102                                 alert('Selected: ' + 
103                                         js2JSON(results_w.selection_id) + '\n');
104                         }
105                 );
106                 results_w.register_flesh_patron_function(
107                         function (treeitem) {
108                                 sdump('D_PATRON_SEARCH',arg_dump(arguments));
109                                 user_async_request(
110                                         'open-ils.actor',
111                                         'open-ils.actor.user.fleshed.retrieve',
112                                         [ G.auth_ses[0], treeitem.getAttribute('record_id') ],
113                                         function (request) {
114                                                 sdump('D_PATRON_SEARCH','In flesh_patron_function: ' + arg_dump(arguments));
115                                                 try {
116                                                         var patron = request.getResultObject();
117                                                         sdump('D_PATRON_SEARCH','patron = ' + js2JSON( patron ) + '\n');
118                                                         results_w.map_patron_to_cols( patron, treeitem );
119                                                 } catch(E) {
120                                                         sdump('D_ERROR',js2JSON(E) + '\n');
121                                                 }
122                                         }
123                                 );
124                         }
125                 );
126                 sdump('D_TRACE_EXIT',arg_dump(arguments));
127                 return;
128         };
129 }