import rt 2.0.14
[freeside.git] / rt / webrt / Ticket / Elements / ShowTransaction
diff --git a/rt/webrt/Ticket/Elements/ShowTransaction b/rt/webrt/Ticket/Elements/ShowTransaction
new file mode 100755 (executable)
index 0000000..a0da008
--- /dev/null
@@ -0,0 +1,162 @@
+<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>