X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FShowEmailRecord.html;h=01e3e7b572cf89ca7206b6abc9df4dbeb78c8068;hp=bb754db343f2801f7640881bb23b9a18012e1e30;hb=7322f2afedcc2f427e997d1535a503613a83f088;hpb=7588a4ac90a9b07c08a3107cd1107d773be1c991 diff --git a/rt/share/html/Ticket/ShowEmailRecord.html b/rt/share/html/Ticket/ShowEmailRecord.html index bb754db34..01e3e7b57 100644 --- a/rt/share/html/Ticket/ShowEmailRecord.html +++ b/rt/share/html/Ticket/ShowEmailRecord.html @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -50,10 +50,16 @@ $Attachment => undef $Transaction => undef <%INIT> +my $plain_text_mono + = RT->Config->Get( 'PlainTextMono', $session{'CurrentUser'} ); +my $use_brs = !$plain_text_mono; + my $show_content = sub { my $attach = shift; if ( $attach->ContentType =~ m{^(?:text|message)/}i ) { - $m->out( $m->interp->apply_escapes( $attach->Content, 'h' ) ); + my $content = $m->interp->apply_escapes( $attach->Content, 'h' ); + $content =~ s{(\r?\n)}{
}g if $use_brs; + $m->out( $content ); return; } my $href = RT->Config->Get('WebPath') .'/Ticket/Attachment/' @@ -65,9 +71,15 @@ my $show_content = sub { my $show; $show = sub { my $attach = shift; - $m->out( '
' );
-    $m->out( $m->interp->apply_escapes( $attach->Headers, 'h' ) );
-    $m->out( "\n\n" );
+    $m->out('
'); + $m->out('
') if $plain_text_mono; + + my $headers = $m->interp->apply_escapes( $attach->Headers, 'h' ); + $headers =~ s{(\r?\n)}{
}g if $use_brs; + $m->out( $headers ); + + $m->out( $use_brs ? "

" : "\n\n" ); + if ( $attach->ContentType =~ m{^multipart/}i ) { my $children = $attach->Children; while ( my $child = $children->Next ) { @@ -76,21 +88,44 @@ $show = sub { } else { $show_content->( $attach ); } - $m->out( '
' ); + $m->out('') if $plain_text_mono; + $m->out(''); }; +# Set error for error message below. Abort doesn't display well +# because ShowEmailRecord doesn't use the standard RT menus +# and headers. + +my ($title, $error); + my $AttachmentObj = RT::Attachment->new($session{'CurrentUser'}); -$AttachmentObj->Load($Attachment) || Abort(loc("Attachment '[_1]' could not be loaded", $Attachment)); -unless ( $AttachmentObj->id ) { - Abort(loc("Attachment '[_1]' could not be loaded", $Attachment)); +$AttachmentObj->Load($Attachment); + +if ( not $AttachmentObj->id + or not $AttachmentObj->TransactionId() == $Transaction ) { + $title = loc("Error loading attachment"); + $error = loc("Attachment '[_1]' could not be loaded", $Attachment); +} +elsif ( not $AttachmentObj->TransactionObj->CurrentUserCanSee("Transaction")){ + $title = loc("Permission Denied"); + $error = loc("Permission Denied"); } -unless ($AttachmentObj->TransactionId() == $Transaction ) { - Abort(loc("Attachment '[_1]' could not be loaded", $Attachment)); +else{ + $title = loc("Email Source for Ticket [_1], Attachment [_2]", + $AttachmentObj->TransactionObj->ObjectId, + $AttachmentObj->Id); } -<& /Elements/Header, ShowBar => 0 &> -% $show->( $AttachmentObj ); +<& /Elements/Header, ShowBar => 0, Title => $title &> +% if ( $error ){ +
+<% $error %> +
+% } +% else{ +% $show->( $AttachmentObj ); +% } % $m->abort;