diff options
Diffstat (limited to 'rt/share/html/Ticket/Elements/ShowHistory')
-rwxr-xr-x | rt/share/html/Ticket/Elements/ShowHistory | 61 |
1 files changed, 25 insertions, 36 deletions
diff --git a/rt/share/html/Ticket/Elements/ShowHistory b/rt/share/html/Ticket/Elements/ShowHistory index 1833ecd51..b5e009c34 100755 --- a/rt/share/html/Ticket/Elements/ShowHistory +++ b/rt/share/html/Ticket/Elements/ShowHistory @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC %# <sales@bestpractical.com> %# %# (Except where explicitly superseded by other copyright notices) @@ -60,18 +60,21 @@ if ($ShowDisplayModes or $ShowTitle) { if ($ShowDisplayModes) { $titleright = ''; + my $open_all = $m->interp->apply_escapes( loc("Show all quoted text"), 'h' ); + my $close_all = $m->interp->apply_escapes( loc("Hide all quoted text"), 'h' ); + $titleright .= '<a href="#" data-direction="open" ' + . qq{onclick='return toggle_all_folds(this, "$open_all", "$close_all");'} + . ">$open_all</a> — "; + if ($ShowHeaders) { $titleright .= qq{<a href="$URIFile?id=} . $Ticket->id.qq{">} . - loc("Brief headers") . - qq{</a> — }; - $titleright .= q[<span class="selected">] . loc("Full headers") . "</span>"; - } - else { - $titleright .= q[<span class="selected">] . loc("Brief headers") . "</span> — "; + loc("Show brief headers") . + qq{</a>}; + } else { $titleright .= qq{<a href="$URIFile?ShowHeaders=1;id=} . $Ticket->id.qq{">} . - loc("Full headers") . + loc("Show full headers") . qq{</a>}; } } @@ -79,11 +82,18 @@ if ($ShowDisplayModes or $ShowTitle) { <div class="history"> <& /Widgets/TitleBoxStart, title => $title, titleright_raw => $titleright &> % } - <div id="ticket-history"> <%perl> -my @attachments = @{$Attachments->ItemsArrayRef()}; -my @attachment_content = @{$AttachmentContent->ItemsArrayRef()}; +my $trans_content = {}; +my $trans_attachments = {}; + +for my $content (@{$AttachmentContent->ItemsArrayRef()}) { + $trans_content->{$content->TransactionId}->{$content->Id} = $content; +} + +for my $attachment (@{$Attachments->ItemsArrayRef()}) { + push (@{$trans_attachments->{$attachment->TransactionId}}, $attachment) +} while ( my $Transaction = $Transactions->Next ) { my $skip = 0; @@ -97,14 +107,8 @@ while ( my $Transaction = $Transactions->Next ) { $i++; - my @trans_attachments = grep { $_->TransactionId == $Transaction->Id } @attachments; - - my $trans_content = {}; - grep { ($_->TransactionId == $Transaction->Id ) && ($trans_content->{$_->Id} = $_) } @attachment_content; - - my $IsLastTransaction = 0; - if ( $OldestFirst ) { + if ( RT->Config->Get( 'OldestTransactionsFirst', $session{'CurrentUser'} )){ $IsLastTransaction = $Transactions->IsLast; } else { $IsLastTransaction = 1 if ( $i == 1 ); @@ -118,7 +122,7 @@ while ( my $Transaction = $Transactions->Next ) { Transaction => $Transaction, ShowHeaders => $ShowHeaders, RowNum => $i, - Attachments => \@trans_attachments, + Attachments => $trans_attachments->{$Transaction->id}, AttachmentContent => $trans_content, LastTransaction => $IsLastTransaction ); @@ -135,25 +139,9 @@ $m->flush_buffer(); </div> % } <%INIT> -my $Transactions = new RT::Transactions($session{'CurrentUser'}); -if ($Tickets) { - while (my $t = $Tickets->Next) { - $Transactions->LimitToTicket($t->id); - } -} else { - $Transactions = $Ticket->Transactions; -} - - -my $OldestFirst = RT->Config->Get( 'OldestTransactionsFirst', $session{'CurrentUser'} ); -my $SortOrder = $OldestFirst? 'ASC': 'DESC'; -$Transactions->OrderByCols( { FIELD => 'Created', - ORDER => $SortOrder }, - { FIELD => 'id', - ORDER => $SortOrder }, - ); my $i; +$Transactions ||= $m->comp('/Ticket/Elements/FindTransactions',Ticket => $Ticket, Tickets => $Tickets || undef); $Attachments ||= $m->comp('/Ticket/Elements/FindAttachments', Ticket => $Ticket, Tickets => $Tickets || undef); $AttachmentContent ||= $m->comp('/Ticket/Elements/LoadTextAttachments', Ticket => $Ticket); @@ -162,6 +150,7 @@ $AttachmentContent ||= $m->comp('/Ticket/Elements/LoadTextAttachments', Ticket = $URIFile => RT->Config->Get('WebPath')."/Ticket/Display.html" $Ticket => undef $Tickets => undef +$Transactions => undef $Attachments => undef $AttachmentContent => undef $ShowHeaders => undef |