first pass at sales reports per agent and package class
[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 <%= include('/elements/xmlhttp.html',
14               'url'  => $p.'elements/jsrsServer.html',
15               'subs' => [ 'job_status' ],
16            )
17 %>
18 <SCRIPT TYPE="text/javascript" src="../elements/qlib/control.js"></SCRIPT>
19 <SCRIPT TYPE="text/javascript" src="../elements/qlib/imagelist.js"></SCRIPT>
20 <SCRIPT TYPE="text/javascript" src="../elements/qlib/progress.js"></SCRIPT>
21 <SCRIPT TYPE="text/javascript">
22 function refreshStatus () {
23   //jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
24
25   job_status( '<%= $jobnum %>', updateStatus );
26 }
27 function updateStatus( status_statustext ) {
28
29   //var Array = status_statustext.split("\n");
30   var statusArray = eval('(' + status_statustext + ')');
31   var status = statusArray[0];
32   var statustext = statusArray[1];
33
34   //if ( status == 'progress' ) {
35   //IE workaround, no i have no idea why
36   if ( status.indexOf('progress') > -1 ) {
37     document.getElementById("progress_percent").innerHTML = statustext + '%';
38     bar1.set(statustext);
39     bar1.update;
40     //jsrsExecute( '<%=$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<%= $jobnum %>' );
41     job_status( '<%= $jobnum %>', updateStatus );
42   } else if ( status.indexOf('complete') > -1 ) {
43 <% if ( $message ) { %>
44     document.getElementById("progress_message").innerHTML = "<%= $message %>";
45     document.getElementById("progress_bar").innerHTML = '';
46     document.getElementById("progress_percent").innerHTML = '<INPUT TYPE="button" VALUE="OK" onClick="parent.nd(1);">';
47     document.getElementById("progress_jobnum").innerHTML = '';
48     if ( parent.document.<%=$formname%>.submit.disabled == true ) {
49       parent.document.<%=$formname%>.submit.disabled=false;
50     }
51 <% } elsif ( $url ) { %>
52     window.top.location.href = '<%= $url %>';
53 <% } else { %>
54     alert('job done but no url or message specified');
55 <% } %>
56   } else if ( status.indexOf('error') > -1 ) {
57     document.getElementById("progress_message").innerHTML = '<FONT SIZE="+1" COLOR="#FF0000">Error: ' + statustext + '</FONT>';
58     document.getElementById("progress_bar").innerHTML = '';
59     document.getElementById("progress_percent").innerHTML = '<INPUT TYPE="button" VALUE="OK" onClick="parent.nd(1);">';
60     document.getElementById("progress_jobnum").innerHTML = '';
61     if ( parent.document.<%=$formname%>.submit.disabled == true ) {
62       parent.document.<%=$formname%>.submit.disabled=false;
63     }
64   } else {
65     alert('XXX unknown status returned from server: ' + status);
66   }
67   
68 }
69 </SCRIPT>
70
71     <TABLE WIDTH="100%">
72       <TR>
73         <TD ALIGN="center" ID="progress_message">
74           Server processing job...
75         </TD>
76       </TR><TR>
77         <TD ALIGN="center" ID="progress_bar">
78           <SCRIPT TYPE="text/javascript">
79             // Create imagelist
80             SEGS = new QImageList(4, 23, "../images/progressbar-empty.png", "../images/progressbar-full.png");
81             // Create bars
82             bar1 = new QProgress(null, "bar1", SEGS, 100);
83             // bar1.set(0);
84             // bar1.update;
85           </SCRIPT>
86         </TD>
87       </TR><TR>
88         <TD ALIGN="center">
89           <DIV ID="progress_percent">%</DIV>
90         </TD>
91       </TR><TR>
92         <TD ALIGN="center" ID="progress_jobnum">
93           (progress of job #<%= $jobnum %>)
94         </TD>
95       </TR>
96     </TABLE>
97
98   </BODY>
99 </HTML>
100