From: mark Date: Tue, 16 Aug 2011 02:10:08 +0000 (+0000) Subject: reliably start batch download, #947 X-Git-Tag: freeside_2_1_3~36 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=3124e61950c0a502018cc5fb0f5977f20958a87f reliably start batch download, #947 --- diff --git a/httemplate/elements/progress-init.html b/httemplate/elements/progress-init.html index 9f17370db..2ec248e32 100644 --- a/httemplate/elements/progress-init.html +++ b/httemplate/elements/progress-init.html @@ -54,7 +54,10 @@ sub process_whatever { #class method ) %> -<% include('/elements/init_overlib.html') %> +% if (!$noinit) { +<& /elements/init_overlib.html &> +% $noinit = 1; +% } +<%once> +my $noinit = 0; + <%init> my( $formname, $fields, $action, $url_or_message, $key ) = @_; @@ -126,6 +132,7 @@ if ( ref($url_or_message) ) { #its a message or something if $url_or_message->{'url'}; $url_or_message_link = 'popup_url=' .uri_escape( $url_or_message->{'popup_url'} ) if $url_or_message->{'popup_url'}; + } else { $url_or_message_link = "url=$url_or_message"; } diff --git a/httemplate/misc/download-bill_batch.html b/httemplate/misc/download-bill_batch.html index 00d9236f3..9b5f1efa8 100644 --- a/httemplate/misc/download-bill_batch.html +++ b/httemplate/misc/download-bill_batch.html @@ -12,6 +12,12 @@ $m->clear_buffer; $r->content_type('application/pdf'); $r->headers_out->add( 'Content-Disposition' => 'attachment;filename="invoice_batch_'.$batchnum.'.pdf"'); +my $cookie = CGI::Cookie->new( + -name => "bill_batch_download", + -value => $batchnum, + -expires => '+1d', +); +$r->headers_out->add( 'Set-Cookie' => $cookie->as_string ); $m->print($content); $batch->pdf(''); diff --git a/httemplate/search/bill_batch.cgi b/httemplate/search/bill_batch.cgi index a181aab57..3cdb3e3b8 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"; Starting download... - + + + +
+Click here if your download does not start +
<& /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> + + <%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 .= '' . + $html .= '' . ($batch->status eq 'O' ? 'Download and close' : 'Download'); $html .= ''; return $html;