diff options
Diffstat (limited to 'httemplate/search/bill_batch.cgi')
-rwxr-xr-x | httemplate/search/bill_batch.cgi | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/httemplate/search/bill_batch.cgi b/httemplate/search/bill_batch.cgi index a181aab..3cdb3e3 100755 --- a/httemplate/search/bill_batch.cgi +++ b/httemplate/search/bill_batch.cgi @@ -1,18 +1,31 @@ % my $batchnum = $cgi->param('download'); % if ( $batchnum =~ /^\d+$/ ) { -% $cgi->delete('download'); +% my $download = $p."misc/download-bill_batch.html?$batchnum"; <HTML> <HEAD><TITLE>Starting download...</TITLE> <SCRIPT TYPE="text/javascript"> -function refreshParent() { - window.top.setTimeout("window.top.location.href = '<% $cgi->self_url %>'", 2000); - window.top.location.replace('<%$p%>misc/download-bill_batch.html?<%$batchnum%>'); +function start() { + window.location.replace('<% $download %>'); } </SCRIPT> -</HEAD><BODY onload="refreshParent();"> +<!--[if lte IE 7]> +<SCRIPT TYPE="text/javascript">function start() {}</SCRIPT> +<![endif]--> +</HEAD> +<BODY onload="start()" STYLE="background-color:#ccccff"> +<TABLE STYLE="height:125px; width:100%; text-align:center"><TR><TD STYLE="vertical-align:middle;text-align:center"> +<A HREF="<% $download %>">Click here if your download does not start</A> +</TD></TR></TABLE> <& /elements/footer.html &> % } % else { +%# delete existing download cookie +% my $cookie = CGI::Cookie->new( +% -name => 'bill_batch_download', +% -value => 0, +% -expires => '-1d', +% ); +% $r->headers_out->add( 'Set-Cookie' => $cookie->as_string ); <% include( 'elements/search.html', 'title' => 'Invoice Batches', 'name_singular' => 'batch', @@ -49,10 +62,29 @@ function refreshParent() { '', ], 'really_disable_download' => 1, + 'html_foot' => include('.foot'), ) %> %} +<%def .foot> +<SCRIPT type="text/javascript"> +var timer; +function checkDownloadStatus(batchnum) { + var re = new RegExp('bill_batch_download=' + batchnum); + if ( re.test(document.cookie) ) { + window.clearInterval(timer); + window.location.reload(); + } +} +function startBatch(batchnum) { + timer = window.setInterval(function() { + checkDownloadStatus(batchnum); + }, 2000); + eval('batch'+batchnum+'process()'); +} +</SCRIPT> +</%def> <%init> die "access denied" @@ -65,7 +97,6 @@ my $count_query = 'SELECT COUNT(*) FROM bill_batch'; my $extra_sql = ''; # may add something here later my $link = [ "${p}view/bill_batch.cgi?batchnum=", 'batchnum' ]; -my $download_id = int(rand(1000000)); sub download_link { my $batch = shift; @@ -79,10 +110,10 @@ sub download_link { "Download$batchnum", [ 'batchnum', 'close' ], $p.'misc/process/bill_batch-print.html', - { url => $p."search/bill_batch.cgi?download=$batchnum" }, + { popup_url => $p."search/bill_batch.cgi?download=$batchnum" }, "batch$batchnum" #key ); - $html .= '<A href="#" onclick="batch'.$batchnum.'process();">' . + $html .= '<A href="#" onclick="startBatch('.$batchnum.');">' . ($batch->status eq 'O' ? '<B>Download and close</B>' : 'Download'); $html .= '</A></FORM>'; return $html; |