]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/spawn_win.js
e5948e38dfa087bb85d4ef8e1efc894231773dbb
[working/Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / spawn_win.js
1 function spawn_interface(d,placement,place,chrome,label,passthru_params,clone) {
2         sdump('D_SPAWN',arg_dump(arguments,{0:true,1:true,2:true,3:true,4:true,5:true}));
3         var w;
4         switch(placement) {
5                 case 'new_tab' : 
6                         mw.new_tab(d,place); 
7                         w = spawn_interface(d,'replace_tab',place,chrome,label,passthru_params,clone); break;
8
9                 case 'replace_tab' : 
10                         w = mw.replace_tab(d,place,label,chrome); break;
11
12                 case 'new_window' : 
13                         w = new_window( chrome, { 'window_name' : label } ); break;
14
15
16                 case 'replace_iframe' :
17                 case 'replace_browser' :
18                 case 'replace_editor' :
19                         var el = placement.slice(8);
20                         var container = get_widget( d, place );
21                         empty_widget( d, container );
22                         w = spawn_interface(d,'new_' + el,place,chrome,label,passthru_params,clone); 
23                         break;
24
25                 case 'new_iframe' :
26                 case 'new_browser' :
27                 case 'new_editor' :
28                         var el = placement.slice(4);
29                         var frame = d.createElement( el );
30                         frame.setAttribute('flex','1');
31                         get_widget( d, place ).appendChild( frame );
32                         w = spawn_interface(d,'set_frame',frame,chrome,label,passthru_params,clone); 
33                         break;
34
35                 case 'set_frame' :
36                         var frame = get_widget( d, place );
37                         if (clone) {
38                                 frame.contentWindow.document = mw.G.test_win.document.cloneNode(true);
39                         } else {
40                                 frame.setAttribute('src',chrome); 
41                         }
42                         w = frame.contentWindow;
43                         break;
44         }
45         w.params = passthru_params;
46         w.mw = mw;
47         //if (placement == 'new_tab' || placement == 'replace_tab') w.app_shell = d;
48         w.app_shell = d;
49         return w;
50 }
51
52 /* developer utilities */
53
54 function spawn_javascript_console(d,placement,place,passthru_params,clone) {
55         var chrome = 'chrome://global/content/console.xul';
56         return spawn_interface(d,placement,place,chrome,getString('javascript_console_label'),passthru_params,clone);
57 }
58
59 function spawn_xuleditor(d,placement,place,passthru_params,clone) {
60         var chrome = 'chrome://evergreen/content/util/xuledit.xul';
61         return spawn_interface(d,placement,place,chrome,getString('xuleditor_label'),passthru_params,clone);
62 }
63
64 function spawn_javascript_shell(d,placement,place,passthru_params,clone) {
65         var chrome = 'chrome://evergreen/content/util/shell.html';
66         return spawn_interface(d,placement,place,chrome,getString('javascript_shell_label'),passthru_params,clone);
67 }
68
69 function spawn_filter_console(d,placement,place,passthru_params,clone) {
70         var chrome = 'chrome://evergreen/content/util/filter_console.xul';
71         return spawn_interface(d,placement,place,chrome,getString('filter_console_label'),passthru_params,clone);
72 }
73
74 function spawn_fieldmapper(d,placement,place,passthru_params,clone) {
75         var chrome = 'chrome://evergreen/content/util/fm_view.xul';
76         return spawn_interface(d,placement,place,chrome,getString('fieldmapper_label'),passthru_params,clone);
77 }
78
79 /* current */
80
81 function spawn_main() {
82         sdump('D_SPAWN','trying to spawn app_shell\n');
83         try {
84                 var w = new_window('chrome://evergreen/content/main/app_shell.xul', {});
85                 if (!w) { throw('window ref == null'); }
86                 try {
87                         w.params = {};
88                         return w;
89                 } catch(E) {
90                         alert('Hrmm. ' + pretty_print( js2JSON(E) ) );
91                 }
92         } catch(E) {
93                 dump(js2JSON(E)+'\n');
94         }
95 }
96
97 function spawn_checkin(d,placement,place,passthru_params,clone) {
98         var chrome = 'chrome://evergreen/content/circ/checkin.xul';
99         return spawn_interface(d,placement,place,chrome,getString('checkin_interface_label'),passthru_params,clone);
100 }
101
102 function spawn_record_details(d,placement,place,passthru_params,clone) {
103         var chrome = 'chrome://evergreen/content/cat/details.xul';
104         return spawn_interface(d,placement,place,chrome,'DETAILS',passthru_params,clone);
105 }
106
107 function spawn_hold_capture(d,placement,place,passthru_params,clone) {
108         var chrome = 'chrome://evergreen/content/circ/hold_capture.xul';
109         return spawn_interface(d,placement,place,chrome,getString('hold_capture_interface_label'),passthru_params,clone);
110 }
111
112 function spawn_opac_navigator(d,placement,place,passthru_params,clone) {
113         var chrome = 'chrome://evergreen/content/opac/opac.xul';
114         //var chrome = 'http://google.com/';
115         return spawn_interface(d,placement,place,chrome,getString('opac_navigator_interface_label'),passthru_params,clone);
116 }
117
118 function spawn_patron_barcode_entry(d,placement,place,passthru_params,clone) {
119         var chrome = 'chrome://evergreen/content/patron/patron_barcode_entry.xul';
120         return spawn_interface(d,placement,place,chrome,getString('patron_barcode_entry_interface_label'),passthru_params,clone);
121 }
122
123 function spawn_patron_display(d,placement,place,passthru_params,clone) {
124         var chrome = 'chrome://evergreen/content/patron/patron_display.xul';
125         return spawn_interface(d,placement,place,chrome,getString('patron_display_interface_label'),passthru_params,clone);
126 }
127
128 function spawn_patron_search(d,placement,place,passthru_params,clone) {
129         var chrome = 'chrome://evergreen/content/patron/patron_search.xul';
130         return spawn_interface(d,placement,place,chrome,getString('patron_search_interface_label'),passthru_params,clone);
131 }
132
133 function spawn_receipt_template_editor(d,placement,place,passthru_params,clone) {
134         var chrome = 'chrome://evergreen/content/circ/receipt_template_editor.xul';
135         return spawn_interface(d,placement,place,chrome,getString('receipt_template_editor_interface_label'),passthru_params,clone);
136 }
137
138 /* legacy code, may be removed or refactored */
139
140 function spawn_batch_copy_editor(d,placement,place,passthru_params,clone) {
141         var chrome = 'chrome://evergreen/content/cat/copy_edit.xul';
142         return spawn_interface(d,placement,place,chrome,getString('copies_editor_interface_label'),passthru_params,clone);
143 }
144
145 function spawn_bill_pay(d,placement,place,passthru_params,clone) {
146         var chrome = 'chrome://evergreen/content/bill/bill.xul';
147         return spawn_interface(d,placement,place,chrome,getString('bills_interface_label'),passthru_params,clone);
148 }
149
150 function spawn_copy_browser(d,placement,place,passthru_params,clone) {
151         var chrome = 'chrome://evergreen/content/cat/browse_list.xul';
152         return spawn_interface(d,placement,place,chrome,getString('copy_browser_interface_label'),passthru_params,clone);
153 }
154
155 function spawn_brief_view(d,placement,place,passthru_params,clone) {
156         var chrome = 'chrome://evergreen/content/cat/brief.xul';
157         return spawn_interface(d,placement,place,chrome,'BRIEF VIEW',passthru_params,clone);
158 }
159
160 function spawn_marc_editor(d,placement,place,passthru_params,clone) {
161         var chrome = 'chrome://evergreen/content/cat/marc.xul';
162         return spawn_interface(d,placement,place,chrome,getString('marc_editor_interface_label'),passthru_params,clone);
163 }
164
165 function spawn_oclc_import(d,placement,place,passthru_params,clone) {
166         sdump('D_SPAWN','trying to spawn_oclc_import('+js2JSON(passthru_params)+')\n');
167         // sample TCN: 03715963 
168         try {
169                 if (passthru_params.tcn.length < 6) {
170                         throw("Too short.  At the moment, we're really doing a search rather than a retrieve, and it's a substring search at that.  We grab the result that matches exactly.  But sending a short query would just be mean. :)");
171                 }
172                 var result = user_request(
173                         'open-ils.search',
174                         'open-ils.search.z3950.import',
175                         [ mw.G.auth_ses[0], passthru_params.tcn ]
176                 )[0];
177                 if (result) {
178                         if (typeof result == 'object') {
179                                 if (result.records && result.records.length > 0) {      
180                                         passthru_params['import_tree'] = result.records[0];
181                                 } else {
182                                         throw('no records. result = ' + js2JSON(result) + '\n');
183                                 }
184                         } else {
185                                 throw('result: ' + js2JSON(result) + '\n');
186                         }
187                         spawn_marc_editor(d,placement,place,passthru_params);
188                 }
189         } catch(E) {
190                 mw.handle_error(E);
191         }
192 }
193
194 function spawn_new_marc_creation(d,placement,place,passthru_params,clone) {
195         sdump('D_SPAWN','trying to spawn_new_marc_creation('+js2JSON(passthru_params)+')\n');
196         if (! passthru_params.type) passthru_params.type = 'book';
197         try {
198                 var record = user_request(
199                         'open-ils.cat',
200                         'open-ils.cat.biblio.marc_template.retrieve',
201                         [ passthru_params.type ]
202                 )[0];
203                 passthru_params['import_tree'] = record;
204                 passthru_params['new_tree'] = true;
205                 spawn_marc_editor(d,placement,place,passthru_params);
206         } catch(E) {
207                 mw.handle_error(E);
208         }
209 }
210
211 function marc_view(app_shell,record_id) {
212         try {
213                 var html = user_request(
214                         "open-ils.search",
215                         "open-ils.search.biblio.record.html",
216                         [ record_id ]
217                 )[0];
218                 html = html.replace( /<table/, '<div id="this_div"><input id="copy_btn" type="submit" value="Copy Browser" /><input id="marc_btn" type="submit" value="MARC Editor" /></div><table' );
219                 var id = record_id;
220                 var win = new_window("data:text/html," + html);
221                 setTimeout(
222                         function() {
223                                 win.document.title = "View MARC";
224                                 win.focus();
225                                 win.document.getElementById('marc_btn').addEventListener(
226                                         'click',
227                                         function(ev) {
228                                                 spawn_marc_editor( 
229                                                         app_shell, 'new_tab', 'main_tabbox', { 
230                                                                 'find_this_id' : record_id 
231                                                         } 
232                                                 ).find_this_id = record_id;
233                                         },
234                                         false
235                                 );
236                                 win.document.getElementById('copy_btn').addEventListener(
237                                         'click',
238                                         function(ev) {
239                                                 spawn_copy_browser( 
240                                                         app_shell, 'new_tab', 'main_tabbox', { 
241                                                                 'find_this_id' : record_id 
242                                                         } 
243                                                 ).find_this_id = record_id;
244                                         },
245                                         false
246                                 );
247                         }, 0
248                 );
249         } catch(E) {
250                 handle_error(E);
251         }
252 }
253
254 function spawn_patron_edit(d,placement,place,passthru_params,clone) {
255         var chrome = 'chrome://evergreen/content/patron/patron_edit.xul';
256         return spawn_interface(d,placement,place,chrome,getString('patron_editor_interface_label'),passthru_params,clone);
257 }
258
259 function spawn_patron_register(d,placement,place,passthru_params,clone) {
260         var chrome = 'chrome://evergreen/content/patron/patron_new_legacy.xul';
261         return spawn_interface(d,placement,place,chrome,getString('patron_register_interface_label'),passthru_params,clone);
262 }
263
264 function spawn_copy_stat_cat_edit(d,placement,place,passthru_params,clone) {
265         var chrome = 'chrome://evergreen/content/stat_cat/copy_stat_cat_editor.xul';
266         return spawn_interface(d,placement,place,chrome,getString('copy_stat_cat_editor_interface'),passthru_params,clone);
267 }
268
269 function spawn_patron_stat_cat_edit(d,placement,place,passthru_params,clone) {
270         var chrome = 'chrome://evergreen/content/stat_cat/patron_stat_cat_editor.xul';
271         return spawn_interface(d,placement,place,chrome,getString('patron_stat_cat_editor_interface'),passthru_params,clone);
272 }
273
274 function spawn_survey_admin_wizard(d,placement,place,passthru_params,clone) {
275         var chrome = 'chrome://evergreen/content/survey/survey_wizard.xul';
276         return spawn_interface(d,placement,place,chrome,getString('survey_admin_interface_label'),passthru_params,clone);
277 }
278
279 function spawn_z3950_import(d,placement,place,passthru_params,clone) {
280         var chrome = 'chrome://evergreen/content/z39_50/z39_50.xul';
281         return spawn_interface(d,placement,place,chrome,getString('z39_50_import_interface_label'),passthru_params,clone);
282 }
283
284