local $FS::CurrentUser::CurrentUser = $self->access_user;
local $FS::Mason::Request::QUERY_STRING = $self->query_string;
- local $FS::Mason::Request::FSURL = ''; #?
-# local $ENV{SERVER_NAME} = 'localhost'; #?
-# local $ENV{SCRIPT_NAME} = '/freeside'. $self->path;
+ local $FS::Mason::Request::FSURL = $self->access_user->option('rooturl');
my $mason_request = $fs_interp->make_request(comp => '/' . $self->path);
+ $mason_request->notes('inline_stylesheet', 1);
local $@;
eval { $mason_request->exec(); };
<p>' . $_ . '</p>';
}
- return $outbuf;
+ my %mime = (
+ Data => $outbuf,
+ Type => $mason_request->notes('header-content-type')
+ || 'text/html',
+ Disposition => 'inline',
+ );
+ if (my $disp = $mason_request->notes('header-content-disposition') ) {
+ $disp =~ /^(attachment|inline)\s*;\s*filename=(.*)$/;
+ $mime{Disposition} = $1;
+ my $filename = $2;
+ $filename =~ s/^"(.*)"$/$1/;
+ $mime{Filename} = $filename;
+ }
+ if ($mime{Type} =~ /^text/) {
+ $mime{Encoding} = 'quoted-printable';
+ } else {
+ $mime{Encoding} = 'base64';
+ }
+ return MIME::Entity->build(%mime);
}
=item send
return $error;
}
$log->debug('Rendering saved search');
- my $content = $self->render;
- # XXX come back to this for content-type options
- my $part = MIME::Entity->build(
- 'Type' => 'text/html',
- 'Encoding' => 'quoted-printable', # change this for spreadsheet
- 'Disposition' => 'inline',
- 'Data' => $content,
- );
+ my $part = $self->render;
my %email_param = (
'from' => $conf->config('invoice_from'),