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