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