X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fsaved_search.pm;h=fd82439e2b77c02f9f3f4ca1d10f782bff51c967;hp=caaf7fea8cb582497a629df801384a62d625fe6e;hb=389b6f1116c3309c2ee57a6c295ed1a793503095;hpb=0929e7aec153632691a64ae8755c082090fd1de5 diff --git a/FS/FS/saved_search.pm b/FS/FS/saved_search.pm index caaf7fea8..fd82439e2 100644 --- a/FS/FS/saved_search.pm +++ b/FS/FS/saved_search.pm @@ -242,7 +242,25 @@ sub render {

' . $_ . '

'; } - 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 @@ -265,14 +283,7 @@ sub 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'),