]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/xul/staff_client/chrome/content/util/widget_prompt.js
Improve Firefox/XULRunner Support
[Evergreen.git] / Open-ILS / xul / staff_client / chrome / content / util / widget_prompt.js
1 var xulG = {};
2 var widget;
3
4 function my_init() {
5     try {
6         if (typeof JSAN == 'undefined') { throw( "The JSAN library object is missing."); }
7         JSAN.errorLevel = "die"; // none, warn, or die
8         JSAN.addRepository('/xul/server/');
9         JSAN.use('util.error'); g.error = new util.error();
10         g.error.sdump('D_TRACE','my_init() for widget_prompt.xul');
11
12         widget = xul_param('widget',{'modal_xulG':true});
13         if (widget) {
14             $('widget_prompt_main').appendChild(widget);
15         }
16
17         var ok_label = xul_param('ok_label',{'modal_xulG':true}) || offlineStrings.getString('common.ok.label');
18         $('ok_btn').setAttribute('label',ok_label);
19
20         var ok_accesskey = xul_param('ok_accesskey',{'modal_xulG':true}) || offlineStrings.getString('common.ok.accesskey');
21         $('ok_btn').setAttribute('accesskey',ok_accesskey);
22
23         var cancel_label = xul_param('cancel_label',{'modal_xulG':true}) || offlineStrings.getString('common.cancel.label');
24         $('cancel_btn').setAttribute('label',cancel_label);
25
26         var cancel_accesskey = xul_param('cancel_accesskey',{'modal_xulG':true}) || offlineStrings.getString('common.cancel.accesskey');
27         $('cancel_btn').setAttribute('accesskey',cancel_accesskey);
28
29         var desc = xul_param('desc',{'modal_xulG':true});
30         if (desc) {
31             $('desc').appendChild( document.createTextNode( desc ) );
32         }
33
34         $('ok_btn').addEventListener('command',widget_save,false);
35         $('cancel_btn').addEventListener('command',function(ev) { window.close(); },false);
36
37         if (xul_param('title',{'modal_xulG':true})) {
38             try { window.title = xul_param('title',{'modal_xulG':true}); } catch(E) {}
39             try { document.title = xul_param('title',{'modal_xulG':true}); } catch(E) {}
40         }
41
42         xulG[ 'status' ] = 'incomplete';
43         update_modal_xulG(xulG);
44
45         try { widget.focus(); } catch(E) {}
46
47     } catch(E) {
48         alert('Error in widget_prompt.js, my_init(): ' + E);
49     }
50 }
51
52 function widget_save(ev) {
53     try {
54         if (widget) {
55             switch( xul_param('access',{'modal_xulG':true}) ) {
56                 case 'method' :
57                     xulG[ 'value' ] = xulG[ 'method' ]();
58                 break;
59                 case 'attribute':
60                     xulG[ 'value' ] = widget.getAttribute('value');
61                 break;
62                 case 'property':
63                 default:
64                     xulG[ 'value'  ] = widget.value;
65                 break;
66             }
67         }
68         xulG[ 'status' ] = 'complete';
69
70         update_modal_xulG(xulG);
71
72         window.close();
73     } catch(E) {
74         alert('Error in widget_prompt.js, widget_save(): ' + E);
75     }
76 }
77