use a javascript layer instead of a browser popup (popup blockers), really generalize...
[freeside.git] / httemplate / elements / progress-popup.html
1 <%
2   my( $jobnum ) = $cgi->param('jobnum');
3   my( $url ) = $cgi->param('url');
4 %>
5 <HTML>
6   <HEAD>
7     <TITLE></TITLE>
8   </HEAD>
9   <BODY BGCOLOR="#ccccff" onLoad="refreshStatus()">
10
11 <SCRIPT TYPE="text/javascript" SRC="../elements/jsrsClient.js"></SCRIPT>
12 <SCRIPT TYPE="text/javascript" src="../elements/qlib/control.js"></SCRIPT>
13 <SCRIPT TYPE="text/javascript" src="../elements/qlib/imagelist.js"></SCRIPT>
14 <SCRIPT TYPE="text/javascript" src="../elements/qlib/progress.js"></SCRIPT>
15 <SCRIPT TYPE="text/javascript">
16 function refreshStatus () {
17   jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
18 }
19 function updateStatus( status_statustext ) {
20   var Array = status_statustext.split("\n");
21   var status = Array[0];
22   var statustext = Array[1];
23   //if ( status == 'progress' ) {
24   //IE workaround, no i have no idea why
25   if ( status.indexOf('progress') > -1 ) {
26     document.getElementById("progress_percent").innerHTML = statustext + '%';
27     bar1.set(statustext);
28     bar1.update;
29     jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
30   } else if ( status.indexOf('complete') > -1 ) {
31     window.top.location.href = '<%= $url %>';
32   } else if ( status.indexOf('error') > -1 ) {
33     document.getElementById("progress_message").innerHTML = '<FONT SIZE="+1" COLOR="#FF0000">Error: ' + statustext + '</FONT>';
34     document.getElementById("progress_bar").innerHTML = '';
35     document.getElementById("progress_percent").innerHTML = '<INPUT TYPE="button" VALUE="OK" onClick="parent.nd(1);">';
36     document.getElementById("progress_jobnum").innerHTML = '';
37     parent.document.OneTrueForm.submit.disabled=false;
38   } else {
39     alert('XXX unknown status returned from server: ' + status);
40   }
41   
42 }
43 </SCRIPT>
44
45     <TABLE>
46       <TR>
47         <TD ALIGN="center" ID="progress_message">
48           Server processing job...
49         </TD>
50       </TR><TR>
51         <TD ALIGN="center" ID="progress_bar">
52           <SCRIPT TYPE="text/javascript">
53             // Create imagelist
54             SEGS = new QImageList(4, 23, "../images/progressbar-empty.png", "../images/progressbar-full.png");
55             // Create bars
56             bar1 = new QProgress(null, "bar1", SEGS, 100);
57             // bar1.set(0);
58             // bar1.update;
59           </SCRIPT>
60         </TD>
61       </TR><TR>
62         <TD ALIGN="center">
63           <DIV ID="progress_percent">%</DIV>
64         </TD>
65       </TR><TR>
66         <TD ALIGN="center" ID="progress_jobnum">
67           (progress of job #<%= $jobnum %>)
68         </TD>
69       </TR>
70     </TABLE>
71
72   </BODY>
73 </HTML>
74