default to a session cookie instead of setting an explicit timeout, weird timezone...
[freeside.git] / httemplate / view / cust_msg.html
1 <& /elements/header-popup.html &>
2 <STYLE>
3 P.pre {
4   font-family: monospace;
5   height: auto;
6   width: auto;
7   display: block;
8   white-space: pre-wrap;
9   text-align: left;
10   border: 1px solid #7e0079
11 }
12 </STYLE>
13   
14 <TABLE>
15 <TR><TD>From:</TD><TD><% $cust_msg->env_from %></TD></TR>
16 <TR><TD>To:</TD><TD><% $env_to %></TD></TR>
17 % if ( $date ) {
18 <TR><TD><% $label{$cust_msg->status} %></TD><TD><% $date %></TD></TR>
19 % }
20 % if ( $cust_msg->error ) {
21 <TR><TD>Error:</TD><TD><% encode_entities($cust_msg->error) %></TD></TR>
22 % }
23 <& /elements/menubar.html,
24   { 'newstyle' => 1,
25     'url_base' => $cgi->self_url . ';part=',
26     'selected' => $selected_index,
27   },
28   map { $partnames[$_] => $_ } (0 .. scalar(@parts) - 1),
29 &>
30 </TABLE>
31 <DIV STYLE="text-align:center">
32 % if ( $selected_part->isa('MIME::Entity') ) {
33 %   my $type = $selected_part->mime_type;
34 %   if ( $type =~ /^text/ ) {
35 %#<TEXTAREA style="font-family:monospace" readonly=1 cols=80 rows=20>
36   <P CLASS="pre"><% encode_entities( $selected_part->bodyhandle->as_string ) %></P>
37 %   } else { # show a download link
38 %     my $url = $fsurl . "view/cust_msg_part.html?$custmsgnum+$selected_index";
39   <A HREF="<% $url %>">
40     <DIV STYLE="display: inline-block; padding: 4px; border: 2px solid #00c">
41 %     if ( $type =~ /^image\/\w+$/ ) {
42       <IMG SRC="<% $url %>">
43 %     } else {
44       <FONT SIZE="+1">Download <% $partnames[$selected_index] %></FONT>
45 %     }
46   </A>
47 %   }
48 % } elsif ($selected_part->isa('MIME::Head')) {
49   <P CLASS="pre"><% encode_entities( $cust_msg->header ) %></P>
50 % }
51 </DIV>
52
53 <& /elements/footer.html &>
54 <%init>
55
56 my $curuser = $FS::CurrentUser::CurrentUser;
57 die "access denied" unless $curuser->access_right('View email logs');
58
59 my ($custmsgnum) = $cgi->keywords;
60 $custmsgnum =~ /^(\d+)$/ or die "illegal custmsgnum";
61 my $cust_msg = qsearchs('cust_msg', { 'custmsgnum' => $custmsgnum });
62 my $date = '';
63 $date = time2str('%Y-%m-%d %T', $cust_msg->_date) if ( $cust_msg->_date );
64 my @to = map { encode_entities($_->format) }
65           Email::Address->parse($cust_msg->env_to);
66 my $env_to = join('</TD></TR><TR><TD></TD><TD>', @to);
67
68 my %label = (
69   'sent'   => 'Sent:',
70   'failed' => 'Attempted: ',
71   'prepared' => 'Not sent',
72 );
73
74 my $partname = sub {
75   my %friendly_name = ( 'text/plain' => 'Text', 'text/html' => 'HTML' );
76   my $part = shift;
77   $part->head->recommended_filename
78   || $friendly_name{$part->mime_type}
79   || $part->mime_type;
80 };
81
82 my @parts = $cust_msg->parts;
83 my @partnames = map { &{$partname}($_) } @parts;
84 push @parts, $cust_msg->entity->head;
85 push @partnames, mt('Header');
86
87 my $selected_part;
88 my $selected_index = 0;
89 if ( $cgi->param('part') =~ /^(\d+)$/ ) {
90   $selected_index = $1 if $1 < scalar(@parts);
91 }
92 $selected_part = $parts[$selected_index];
93 $cgi->delete('part'); # for self_url
94
95 </%init>