<TR bgcolor="<%$rowbgcolor%>">
<TD bgcolor="<%$bgcolor%>"><A NAME="#<%$Transaction->Id%>"></A>&nbsp&nbsp;</TD>
<TD>&nbsp&nbsp;</TD>
<TD><font size=-2><% $transdate|n %></font>&nbsp;</TD>
<TD ALIGN="LEFT"><b><%$Transaction->CreatorObj->Name%> - <%$TicketString%> <%$Transaction->BriefDescription%>

</b></TD>
<TD><%$TimeTaken%>&nbsp;</TD>
<TD ALIGN="RIGHT"><font size=-1><%$titlebar_commands|n%></font></TD>
</TR>
<%PERL>

unless ($Collapsed) {
 $attachments->GotoFirstItem;
 while (my $message=$attachments->Next) {
     #we don't want to show any empty transactions, unless they have kids
     next unless (length $message->Content || $message->Children->Count);
     my ($headers, $content);
     
    </%PERL>


<%PERL>
  if ($message->Parent == 0) {
      if ($ShowHeaders == $Ticket->Id) {
	  $headers = $message->Headers;
      } else {
	  $headers = $message->NiceHeaders;
      }
      chomp $headers;
      $headers .= "\n\n" if ($headers);
  }
     # 13456 is a random # of about the biggest size we want to see inline text
     my $MAX_INLINE_BODY = 13456;
     if ($message->ContentType =~ m{^(text/plain|message|text$)}i && 
				    length($message->Content)< $MAX_INLINE_BODY ) {

	 $content = $message->Content;

	 my $wrapper = new Text::Wrapper (columns=>85);
	 $content = $wrapper->wrap($content);
         $content =~ s/&/&amp;/g;
	 $content =~ s/</&lt;/g;
	 $content =~ s/>/&gt;/g;
         $content =~ s!((?:http|https|ftp|mailto):\S*?)([\s"']|&gt;|\.[\n])!<A HREF=\"$1\" TARGET=new>$1</A>$2!g;


     }
     else {
	 $content = "&nbsp;";
     }
        
</%PERL>
<TR BGCOLOR="<%$rowbgcolor%>">
      <TD BGCOLOR="<%$bgcolor%>">&nbsp;&nbsp;</TD>
      <TD>&nbsp&nbsp;</TD>
      <TD COLSPAN=3 VALIGN=TOP>
	<PRE>
<%$headers%><%$content|n%>
</PRE>
      </TD>
      <TD VALIGN=TOP ALIGN=RIGHT>
	
% if ($message->Parent == 0  ) {
<BR>
% }
<%PERL>
my $size = length($message->Content());

if ($size) {
    if ($size > 1024) {
	$size = int($size/102.4)/10 . "k";
    }
    else {
	$size = $size ."b";
    }
</%PERL>
<font size=-1><A HREF="Attachment/<%$Transaction->Id%>/<%$message->Id%>/<%$message->Filename%>">Download <%$message->Filename|| '(untitled)'%></a> <% $size %></font>
% }
</TD>
</TR>
% }
% }



<%ARGS>
$Ticket => undef
$Transaction => undef
$ShowHeaders => undef
$Collapsed => undef
$ShowTitleBarCommands => 1
$RowNum => 1
</%ARGS>

<%INIT>


my ($TimeTaken, $TicketString, $bgcolor, $rowbgcolor);

my $transdate = $Transaction->CreatedAsString();
$transdate =~ s/\s/&nbsp;/g;

if ($RowNum % 2) {
	$rowbgcolor="#cccccc";
} else {
	$rowbgcolor="#ffffff";
}

if ($Transaction->Type =~ /^(Create|Correspond|Comment$)/) {
	if ($Transaction->IsInbound) {
		$bgcolor="#336699";
	}
	else {
		$bgcolor="#339999";
	}
} elsif (($Transaction->Field =~ /^Owner$/) or 
	 ($Transaction->Type =~ /^(AddWatcher|DelWatcher)$/)) {
	$bgcolor="#333399";

} elsif ($Transaction->Type =~ /^(AddLink|DeleteLink)$/) {
	$bgcolor="#336633";
} elsif ($Transaction->Type =~ /^(Status|Set|Keyword|Told)$/) {
	if ($Transaction->Field =~ /^(Told|Starts|Started|Due)$/) {
		$bgcolor="#663366";	
	}
	else {
		$bgcolor="#993333";
	}
}
else {
	$bgcolor="#cccccc";
}

if ($Ticket->Id != $Transaction->Ticket) {
	$TicketString = "Ticket ".$Transaction->Ticket .": ";
}

if ($Transaction->TimeTaken > 0) {
	$TimeTaken = $Transaction->TimeTaken." min"
}
my $attachments = $Transaction->Attachments;

my $titlebar_commands='&nbsp;';

# If the transaction has anything attached to it at all
if ($Transaction->Message->First && $ShowTitleBarCommands) {
	if ($Transaction->TicketObj->CurrentUserHasRight('ReplyToTicket')) {
		$titlebar_commands .= 
	  	  "[<a href=\"Update.html?id=".
		  $Transaction->Ticket . "&QuoteTransaction=".$Transaction->Id.
		  "&Action=Respond\">Reply</a>]&nbsp;";
	}
	if ($Transaction->TicketObj->CurrentUserHasRight('CommentOnTicket')) {
	     $titlebar_commands .= 
	     "[<a href=\"Update.html?id=".$Transaction->Ticket. 
	     "&QuoteTransaction=".$Transaction->Id.
	     "&Action=Comment\">Comment</a>]";
	}
}

</%INIT>