%# BEGIN BPS TAGGED BLOCK {{{
%# 
%# COPYRIGHT:
%# 
%# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
%#                                          <jesse@bestpractical.com>
%# 
%# (Except where explicitly superseded by other copyright notices)
%# 
%# 
%# LICENSE:
%# 
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
%# 
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%# General Public License for more details.
%# 
%# You should have received a copy of the GNU General Public License
%# along with this program; if not, write to the Free Software
%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
%# 02110-1301 or visit their web page on the internet at
%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
%# 
%# 
%# CONTRIBUTION SUBMISSION POLICY:
%# 
%# (The following paragraph is not intended to limit the rights granted
%# to you to modify and distribute this software under the terms of
%# the GNU General Public License and is only of importance to you if
%# you choose to contribute your changes and enhancements to the
%# community by submitting them to Best Practical Solutions, LLC.)
%# 
%# By intentionally submitting any modifications, corrections or
%# derivatives to this work, or any other work intended for use with
%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
%# you are the copyright holder for those contributions and you grant
%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
%# royalty-free, perpetual, license to use, copy, create derivative
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
%# 
%# END BPS TAGGED BLOCK }}}
<div class="asset-transaction <% $type_class %> <% $RowNum % 2 ? 'odd' : 'even' %>">
% $m->callback( titlebar_cmd => \$titlebar_commands, Transaction => $Transaction, %ARGS, CallbackName => 'ModifyDisplay' );

<table width="100%" cellspacing="0" cellpadding="2" border="0" class="asset-transaction">
% $m->callback( titlebar_cmd => \$titlebar_commands, Transaction => $Transaction, %ARGS, CallbackName => 'ModifyCommand' );
  <tr class="metadata">
    <td rowspan="2" valign="top" class="type">
      <a name="txn-<% $Transaction->Id %>" href="<% $DisplayPath %>#txn-<% $Transaction->Id %>">#</a>
      <% $LastTransaction ? '<a id="lasttrans" name="lasttrans"/>' : ''|n %>
    </td>
    <td class="date"><% $transdate|n %></td>
% my $desc = $Transaction->BriefDescription;
% $m->callback( text => \$desc, Transaction => $Transaction, %ARGS, CallbackName => 'ModifyDisplay' );
    <td class="description">
      <% $Transaction->CreatorObj->Name %> - <% $AssetString %> <% $desc %>
    </td>
    <td class="time-taken"><% $TimeTaken %></td>
    <td class="actions<% $titlebar_commands ? '': ' hidden'%>"><% $titlebar_commands |n %></td>
  </tr>

  <tr>
    <td colspan="5" class="content">
% if ( $Transaction->CustomFieldValues->Count ) {
      <& /Elements/ShowCustomFields, Object => $Transaction &>
% }
% $m->comp('ShowTransactionAttachments', %ARGS, Parent => 0) unless ($Collapsed ||!$ShowBody);
    </td>
  </tr>

</table>
</div>

<%ARGS>
$Asset => undef
$Transaction => undef
$ShowHeaders => 0
$Collapsed => undef
$ShowTitleBarCommands => 1
$RowNum => 1
$DisplayPath => RT->Config->Get('WebPath')."/AssetTracker/Asset/Display.html?id=".$Asset->id
$AttachPath => RT->Config->Get('WebPath')."/AssetTracker/Asset/Attachment"
$UpdatePath => RT->Config->Get('WebPath')."/AssetTracker/Asset/Update.html"
$EmailRecordPath => RT->Config->Get('WebPath')."/AssetTracker/Asset/ShowEmailRecord.html"
$Attachments => undef
$AttachmentContent => undef
$ShowBody => 1
$LastTransaction => 0
$WarnUnsigned => undef
</%ARGS>
<%ONCE>

my %class = (
    Create     => 'message',
    Correspond => 'message',
    Comment    => 'message',

    AddWatcher => 'people',
    DelWatcher => 'people',
    Take       => 'people',
    Untake     => 'people',
    Force      => 'people',
    Steal      => 'people',
    Give       => 'people',

    AddLink    => 'links',
    DeleteLink => 'links',
);

</%ONCE>
<%INIT>

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

my ($type, $field) = ($Transaction->Type, $Transaction->Field || '');
my $type_class = $class{ $type };

unless ( $type_class ) {
    if ( $field eq 'Owner' ) {
        $type_class = 'people';
    }
    elsif ( $type =~ /^(Status|Set|Told)$/ ) {
        if ( $field =~ /^(Told|Starts|Started|Due)$/ ) {
            $type_class = 'dates';
        }
        else {
            $type_class = 'basics';
        }
    }
    else {
        $type_class = 'other';
    }
}

my $AssetString = '';
if ( $Asset->Id != $Transaction->ObjectId ) {
    $AssetString = "Asset " . $Transaction->Object->Name . ": ";
}

my $TimeTaken = '';
$TimeTaken = $Transaction->TimeTaken . " min"
    if $Transaction->TimeTaken;

unless ($Attachments) { 
    my $attachments = $Transaction->Attachments;
    $attachments->Columns( qw( Id Filename ContentType Headers Subject Parent ContentEncoding ContentType TransactionId) );
    $Attachments = $attachments->ItemsArrayRef();
}
my $titlebar_commands = '';

if ( $type =~ /EmailRecord$/ ) {

    $titlebar_commands .=
        "[<a target=\"_blank\" href=\"$EmailRecordPath?id="
      . $Transaction->ObjectId
      . "&Transaction="
      . $Transaction->Id
      . "&Attachment="
      . ( $Attachments->[0] && $Attachments->[0]->id )
      . '">' . loc('Show') . "</a>]&nbsp;";
    $ShowBody = 0;
}


# If the transaction has anything attached to it at all
else {

    if ( $Attachments->[0] && $ShowTitleBarCommands ) {
        my $asset = $Transaction->Object;
        my $can_modify = $asset->CurrentUserHasRight('ModifyAsset');
        if ( $can_modify || $asset->CurrentUserHasRight('ReplyToAsset') ) {
            $titlebar_commands .=
                "[<a href=\"".$UpdatePath
              . "?id=" . $Transaction->ObjectId
              . "&QuoteTransaction=" . $Transaction->Id
              . "&Action=Respond\">"
              . loc('Reply')
              . "</a>]&nbsp;";
        }
        if ( $can_modify || $asset->CurrentUserHasRight('CommentOnAsset') ) {
            $titlebar_commands .=
                "[<a href=\"".$UpdatePath."?id="
              . $Transaction->ObjectId
              . "&QuoteTransaction="
              . $Transaction->Id
              . "&Action=Comment\">"
              . loc('Comment') . "</a>]";
        }
    }
}
</%INIT>
