summaryrefslogtreecommitdiff
path: root/httemplate/view/cust_msg.html
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/view/cust_msg.html')
-rwxr-xr-xhttemplate/view/cust_msg.html86
1 files changed, 62 insertions, 24 deletions
diff --git a/httemplate/view/cust_msg.html b/httemplate/view/cust_msg.html
index 67ceef7..91a08eb 100755
--- a/httemplate/view/cust_msg.html
+++ b/httemplate/view/cust_msg.html
@@ -1,4 +1,16 @@
<& /elements/header-popup.html &>
+<STYLE>
+P.pre {
+ font-family: monospace;
+ height: auto;
+ width: auto;
+ display: block;
+ white-space: pre-wrap;
+ text-align: left;
+ border: 1px solid #7e0079
+}
+</STYLE>
+
<TABLE>
<TR><TD>From:</TD><TD><% $cust_msg->env_from %></TD></TR>
<TR><TD>To:</TD><TD><% $env_to %></TD></TR>
@@ -8,31 +20,35 @@
% if ( $cust_msg->error ) {
<TR><TD>Error:</TD><TD><% encode_entities($cust_msg->error) %></TD></TR>
% }
-<TR><TD colspan=2>
-<FORM name="myform">
-<SCRIPT type="text/javascript">
-function toggle_display(obj) {
- document.getElementById('content-header').style.display =
- (obj.value == 'header' ? 'block' : 'none');
- document.getElementById('content-body').style.display =
- (obj.value == 'body' ? 'block' : 'none');
-}
-</SCRIPT>
-<INPUT type="radio" name="what_to_show" onchange="toggle_display(this)" value="header" checked> Header
-<INPUT type="radio" name="what_to_show" onchange="toggle_display(this)" value="body"> Body
-</FORM>
-</TR>
-<TR><TD colspan=2 style="text-align:left">
-<TEXTAREA id="content-header" style="font-family:monospace"
-readonly=1 cols=80 rows=20>
-<% encode_entities($cust_msg->header) %>
-</TEXTAREA>
-<TEXTAREA id="content-body" style="font-family:monospace;display:none"
-readonly=1 cols=80 rows=20>
-<% encode_entities($cust_msg->body) %>
-</TEXTAREA>
-</TD></TR>
+<& /elements/menubar.html,
+ { 'newstyle' => 1,
+ 'url_base' => $cgi->self_url . ';part=',
+ 'selected' => $selected_index,
+ },
+ map { $partnames[$_] => $_ } (0 .. scalar(@parts) - 1),
+&>
</TABLE>
+<DIV STYLE="text-align:center">
+% if ( $selected_part->isa('MIME::Entity') ) {
+% my $type = $selected_part->mime_type;
+% if ( $type =~ /^text/ ) {
+%#<TEXTAREA style="font-family:monospace" readonly=1 cols=80 rows=20>
+ <P CLASS="pre"><% encode_entities( $selected_part->bodyhandle->as_string ) %></P>
+% } else { # show a download link
+% my $url = $fsurl . "view/cust_msg_part.html?$custmsgnum+$selected_index";
+ <A HREF="<% $url %>">
+ <DIV STYLE="display: inline-block; padding: 4px; border: 2px solid #00c">
+% if ( $type =~ /^image\/\w+$/ ) {
+ <IMG SRC="<% $url %>">
+% } else {
+ <FONT SIZE="+1">Download <% $partnames[$selected_index] %></FONT>
+% }
+ </A>
+% }
+% } elsif ($selected_part->isa('MIME::Head')) {
+ <P CLASS="pre"><% encode_entities( $cust_msg->header ) %></P>
+% }
+</DIV>
<& /elements/footer.html &>
<%init>
@@ -52,4 +68,26 @@ my %label = (
'failed' => 'Attempted: ',
'prepared' => 'Not sent',
);
+
+my $partname = sub {
+ my %friendly_name = ( 'text/plain' => 'Text', 'text/html' => 'HTML' );
+ my $part = shift;
+ $part->head->recommended_filename
+ || $friendly_name{$part->mime_type}
+ || $part->mime_type;
+};
+
+my @parts = $cust_msg->parts;
+my @partnames = map { &{$partname}($_) } @parts;
+push @parts, $cust_msg->entity->head;
+push @partnames, mt('Header');
+
+my $selected_part;
+my $selected_index = 0;
+if ( $cgi->param('part') =~ /^(\d+)$/ ) {
+ $selected_index = $1 if $1 < scalar(@parts);
+}
+$selected_part = $parts[$selected_index];
+$cgi->delete('part'); # for self_url
+
</%init>