X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FTicket%2FShowEmailRecord.html;h=3082e744a2593da3994ff52c603ece32719a78bb;hp=55ee8233805785f12d0fd813dd5db122c2e8fd5b;hb=44dd00a3ff974a17999e86e64488e996edc71e3c;hpb=a6fe07e49e3fc12169e801b1ed6874c3a5bd8500 diff --git a/rt/share/html/Ticket/ShowEmailRecord.html b/rt/share/html/Ticket/ShowEmailRecord.html index 55ee82338..3082e744a 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-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2019 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;