From a8614275eb36b79214ff68e9f0f9e603cc448d4e Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Mon, 24 Nov 2008 04:03:14 +0000 Subject: [PATCH] fixed: DataForm times out when exporting large data sets --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/DataForm.pm | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index d3a4c5f71..c9b2cf808 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -55,6 +55,7 @@ - fixed #8982: Deploy package doesn't take back to asset manager - fixed #8956: Not checking for populated variable - fixed #9130: fixed: Rich editor creates root

tag even when set to use
+ - fixed: DataForm times out when exporting large data sets 7.6.3 - improved performance of file uploads diff --git a/lib/WebGUI/Asset/Wobject/DataForm.pm b/lib/WebGUI/Asset/Wobject/DataForm.pm index 089d009d7..b978dab46 100644 --- a/lib/WebGUI/Asset/Wobject/DataForm.pm +++ b/lib/WebGUI/Asset/Wobject/DataForm.pm @@ -15,10 +15,8 @@ http://www.plainblack.com info@plainblack.com =cut use strict; -use Tie::CPHash; use Tie::IxHash; use WebGUI::Form; -use WebGUI::HTML; use WebGUI::HTMLForm; use WebGUI::International; use WebGUI::Mail::Send; @@ -26,13 +24,12 @@ use WebGUI::Macro; use WebGUI::Inbox; use WebGUI::SQL; use WebGUI::Asset::Wobject; -use WebGUI::Utility qw(isIn); use WebGUI::Pluggable; use WebGUI::DateTime; use WebGUI::User; use WebGUI::Group; use WebGUI::AssetCollateral::DataForm::Entry; -use JSON; +use JSON (); our @ISA = qw(WebGUI::Asset::Wobject); @@ -1339,7 +1336,8 @@ sub www_editTabSave { #------------------------------------------------------------------- sub www_exportTab { my $self = shift; - return $self->session->privilege->insufficient + my $session = $self->session; + return $session->privilege->insufficient unless $self->canEdit; my @exportFields; for my $field ( map { $self->getFieldConfig($_) } @{$self->getFieldOrder} ) { @@ -1356,7 +1354,10 @@ sub www_exportTab { 'submissionDate', @exportFields, ); - my $outText = $tsv->string; + + $session->http->setFilename($self->get("url").".tab","text/plain"); + $session->http->sendHeader; + $session->output->print($tsv->string, 1); my $entryIter = $self->entryClass->iterateAll($self); @@ -1370,10 +1371,9 @@ sub www_exportTab { $entry->submissionDate->webguiDate, @{ $entryFields }{@exportFields}, ); - $outText .= $tsv->string; + $session->output->print($tsv->string, 1); } - $self->session->http->setFilename($self->get("url").".tab","text/plain"); - return $outText; + return 'chunked'; } #-------------------------------------------------------------------