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