- #warn "filling in $template with $fill_in\n";
- print $cgi->header( '-expires' => 'now' ),
- $template->fill_in( PACKAGE => 'FS::SelfService::_selfservicecgi',
- HASH => $fill_in
- );
-}
+ if($result && ref($result) && $result->{'format'} && $result->{'content'}
+ && $result->{'format'} eq 'csv') {
+ print $cgi->header('-expires' => 'now',
+ '-Content-Type' => 'text/csv',
+ '-Content-Disposition' => "attachment;filename=output.csv",
+ ),
+ $result->{'content'};
+ }
+ elsif($result && ref($result) && $result->{'format'} && $result->{'content'}
+ && $result->{'format'} eq 'xls') {
+ print $cgi->header('-expires' => 'now',
+ '-Content-Type' => 'application/vnd.ms-excel',
+ '-Content-Disposition' => "attachment;filename=output.xls",
+ '-Content-Length' => length($result->{'content'}),
+ ),
+ $result->{'content'};
+ }
+ else {
+ my $data = $template->fill_in(
+ PACKAGE => 'FS::SelfService::_selfservicecgi',
+ HASH => $fill_in,
+ ) || "Error processing template $source"; # at least print _something_
+ print $cgi->header( '-expires' => 'now' );
+ print $data;
+ }
+ }