%# BEGIN LICENSE BLOCK %# %# Copyright (c) 1996-2003 Jesse Vincent %# %# (Except where explictly superceded by other copyright notices) %# %# 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. %# %# Unless otherwise specified, all modifications, corrections or %# extensions to this work which alter its source code become the %# property of Best Practical Solutions, LLC when submitted for %# inclusion in the work. %# %# %# END LICENSE BLOCK %# Display different title depending on which page we are on - see patch below <%perl> # # Returns the last communication transaction in the passed Transactions list # sub show_last_communication { my ($list) = @_; my ($picked); while (my $Transaction = $list->Next) { $picked = $Transaction if ( $Transaction->Type =~m/(Create)|(Correspond)|(Comment)/ ); } return $picked; } if ($ShowDisplayModes or $ShowTitle) { my $title; my $titleright; if ($ShowTitle) { if ($m->request_comp()->title=~/Ticket\/Display\.html/) { $title = loc('First and Last Comments - click History for all'); } else { $title = loc('Full History'); } } else { $title = ' '; } $titleright = loc('Display mode') . ":"; if ($ShowHeaders && $ShowHeaders == $Ticket->Id ) { $titleright .= "[" . loc("Brief headers") . "] [" . loc("Full headers") . "]"; } else { $titleright .= "[" . loc("Brief headers") . "] [" . loc("Full headers") . "]"; } <& /Elements/TitleBoxStart, title => $title, titleright => $titleright, bodyclass=> ''&> % } %# Suggestion (performance improvement) %# Show only first and last history entry for normal display % if ($m->request_comp()->title=~/Ticket\/Display\.html/) { % my $Transaction = $Transactions->Next; <& ShowTransaction, Ticket => $Ticket, Transaction => $Transaction, ShowHeaders => $ShowHeaders, Collapsed => $Collapsed, RowNum => $i, ShowTitleBarCommands => $ShowTitleBarCommands, %ARGS &> % $Transaction = show_last_communication($Transactions); <& ShowTransaction, Ticket => $Ticket, Transaction => $Transaction, ShowHeaders => $ShowHeaders, Collapsed => $Collapsed, RowNum => $i, ShowTitleBarCommands => $ShowTitleBarCommands, %ARGS &> % } else { % while (my $Transaction = $Transactions->Next) { % my $skip = 0; % $m->comp('/Elements/Callback', _CallbackName => 'SkipTransaction', Transaction => $Transaction, skip => \$skip, %ARGS); % next if $skip; % $i++; % if ($Transactions->IsLast) { % } <& ShowTransaction, Ticket => $Ticket, Transaction => $Transaction, ShowHeaders => $ShowHeaders, Collapsed => $Collapsed, RowNum => $i, ShowTitleBarCommands => $ShowTitleBarCommands, %ARGS &> % } % }
% if ($ShowDisplayModes or $ShowTitle) { <& /Elements/TitleBoxEnd &> % } <%INIT> my $Transactions = $Ticket->Transactions; my $i; <%ARGS> $URIFile => 'Display.html' $Ticket => undef $ShowHeaders => undef $Collapsed => undef $ShowTitle => 1 $ShowDisplayModes => 1 $ShowTitleBarCommands => 1