use a javascript layer instead of a browser popup (popup blockers), really generalize...
[freeside.git] / httemplate / elements / progress-init.html
1 <% my( $formname, $fields, $action, $success_url ) = @_; %>
2
3 <SCRIPT TYPE="text/javascript" SRC="../elements/jsrsClient.js"></SCRIPT>
4 <SCRIPT TYPE="text/javascript" SRC="../elements/overlibmws.js"></SCRIPT>
5 <SCRIPT TYPE="text/javascript">
6 function OLiframeContent(src, width, height, name) {
7   return ('<iframe src="'+src+'" width="'+width+'" height="'+height+'"'
8    +(name?' name="'+name+'" id="'+name+'"':'')+' scrolling="no">'
9    +'<div>[iframe not supported]</div></iframe>');
10 }
11
12 function process () {
13
14   document.OneTrueForm.submit.disabled=true;
15
16   overlib( 'Submitting job to server...', WIDTH, 420, HEIGHT, 128, CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
17
18   var Hash = new Array();
19   var x = 0;
20   var fieldName;
21   for (var i = 0; i<document.OneTrueForm.elements.length; i++) {
22     fieldName = document.OneTrueForm.elements[i].name;
23 //            (fieldName.indexOf('rate') > -1)
24 //         || (fieldName.indexOf('min_') > -1) 
25 //        || (fieldName.indexOf('sec_') > -1) 
26     if ( <%= join(' || ', map { "(fieldName.indexOf('$_') > -1)" } @$fields ) %>
27        )
28     {
29         Hash[x++] = fieldName;
30         Hash[x++] = document.OneTrueForm.elements[i].value;
31     }
32   }
33
34   jsrsPOST = true;
35   jsrsExecute( '<%= $action %>', myCallback, 'start_job', Hash );
36
37 }
38
39 function myCallback( jobnum ) {
40
41   overlib( OLiframeContent('<%=$p%>elements/progress-popup.html?jobnum=' + jobnum + ';url=<%=$success_url%>' , 420, 128, 'progress_popup'), CAPTION, 'Please wait...', STICKY, AUTOSTATUSCAP, CLOSETEXT, '', CLOSECLICK, MIDX, 0, MIDY, 0 );
42
43 }
44
45 </SCRIPT>