summaryrefslogtreecommitdiff
path: root/httemplate/elements/progress-popup.html
blob: 2d273880c642f60547c4310ef4e9523b98c1eb80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
%
%  my $jobnum = $cgi->param('jobnum');
%  my $url = $cgi->param('url');
%  my $message = $cgi->param('message');
%  my $popup_url = $cgi->param('popup_url');
%  my $formname = scalar($cgi->param('formname'));
%

<HTML>
  <HEAD>
    <TITLE></TITLE>
  </HEAD>
  <BODY BGCOLOR="#ccccff" onLoad="refreshStatus()">

<% include('/elements/xmlhttp.html',
              'url'  => $p.'elements/jsrsServer.html',
              'subs' => [ 'job_status' ],
           )
%>
<SCRIPT TYPE="text/javascript" src="<%$fsurl%>elements/qlib/control.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" src="<%$fsurl%>elements/qlib/imagelist.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" src="<%$fsurl%>elements/qlib/progress.js"></SCRIPT>
<SCRIPT TYPE="text/javascript">
function refreshStatus () {
  //jsrsExecute( '<%$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<% $jobnum %>' );

  job_status( '<% $jobnum %>', updateStatus );
}
function updateStatus( status_statustext ) {

  //var Array = status_statustext.split("\n");
  var statusArray = eval('(' + status_statustext + ')');
  var status = statusArray[0];
  var statustext = statusArray[1];
  var actiontext = statusArray[2];

  //if ( status == 'progress' ) {
  //IE workaround, no i have no idea why
  if ( status.indexOf('progress') > -1 ) {
    document.getElementById("progress_message").innerHTML = actiontext + '...';
    document.getElementById("progress_percent").innerHTML = statustext + '%';
    bar1.set(statustext);
    bar1.update;
    //jsrsExecute( '<%$p%>elements/jsrsServer.html', updateStatus, 'job_status', '<% $jobnum %>' );
    job_status( '<% $jobnum %>', updateStatus );
  } else if ( status.indexOf('complete') > -1 ) {
% if ( $message ) {
%
%   my $onClick = $url
%                   ? "window.top.location.href = \\'$url\\';"
%                   : 'parent.nd(1);';

    document.getElementById("progress_message").innerHTML = "<% $message %>";
    document.getElementById("progress_bar").innerHTML = '';
    document.getElementById("progress_percent").innerHTML =
      '<INPUT TYPE="button" VALUE="OK" onClick="<% $onClick %>">';
    document.getElementById("progress_jobnum").innerHTML = '';

%   unless ( $url ) {
        if ( parent.document.<%$formname%>.submit.disabled == true ) {
          parent.document.<%$formname%>.submit.disabled=false;
        }
%   }

% } elsif ( $url ) { 
    parent.nd(1);
    window.top.location.href = '<% $url %>';
% } elsif ( $popup_url ) {
    document.location.replace('<% $popup_url %>');
% } else { 


    alert('job done but no url or message specified');
% } 
  } else if ( status.indexOf('done') > -1 ) {

    document.getElementById("progress_message").innerHTML = "Loading report";
    document.getElementById("progress_bar").innerHTML = '';
    document.getElementById("progress_percent").innerHTML = '';
    document.getElementById("progress_jobnum").innerHTML = '';
    window.top.location.href = statustext.substr(8, statustext.length-18);

  } else if ( status.indexOf('error') > -1 ) {
    document.getElementById("progress_message").innerHTML = '<FONT SIZE="+1" COLOR="#FF0000">Error: ' + statustext + '</FONT>';
    document.getElementById("progress_bar").innerHTML = '';
    document.getElementById("progress_percent").innerHTML = '<INPUT TYPE="button" VALUE="OK" onClick="parent.nd(1);">';
    document.getElementById("progress_jobnum").innerHTML = '';
    if ( parent.document.<%$formname%>.submit.disabled == true ) {
      parent.document.<%$formname%>.submit.disabled=false;
    }
  } else {
    alert('XXX unknown status returned from server: ' + status);
  }
  
}
</SCRIPT>

    <TABLE WIDTH="100%">
      <TR>
        <TD ALIGN="center" ID="progress_message">
          Server processing job...
        </TD>
      </TR><TR>
        <TD ALIGN="center" ID="progress_bar">
          <SCRIPT TYPE="text/javascript">
            // Create imagelist
            SEGS = new QImageList(4, 23, "<%$fsurl%>images/progressbar-empty.png", "<%$fsurl%>images/progressbar-full.png");
            // Create bars
            bar1 = new QProgress(null, "bar1", SEGS, 100);
            // bar1.set(0);
            // bar1.update;
          </SCRIPT>
        </TD>
      </TR><TR>
        <TD ALIGN="center">
          <DIV ID="progress_percent">%</DIV>
        </TD>
      </TR><TR>
        <TD ALIGN="center" ID="progress_jobnum">
          (progress of job #<% $jobnum %>)
        </TD>
      </TR>
    </TABLE>

  </BODY>
</HTML>