diff options
Diffstat (limited to 'rt/share/html/Ticket/Elements/ShowTransaction')
-rwxr-xr-x | rt/share/html/Ticket/Elements/ShowTransaction | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/rt/share/html/Ticket/Elements/ShowTransaction b/rt/share/html/Ticket/Elements/ShowTransaction new file mode 100755 index 000000000..a533323a9 --- /dev/null +++ b/rt/share/html/Ticket/Elements/ShowTransaction @@ -0,0 +1,216 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 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="ticket-transaction <% $type_class %> <% $RowNum % 2 ? 'odd' : 'even' %>"> +% $m->callback( titlebar_cmd => \$titlebar_commands, Transaction => $Transaction, %ARGS, CallbackName => 'ModifyDisplay' ); + +<div class="ticket-transaction"> +% $m->callback( titlebar_cmd => \$titlebar_commands, Transaction => $Transaction, %ARGS, CallbackName => 'ModifyCommand' ); + <div class="metadata"> + <span class="type"> + <a name="txn-<% $Transaction->Id %>" href="<% $DisplayPath %>#txn-<% $Transaction->Id %>">#</a> + <% $LastTransaction ? '<a id="lasttrans" name="lasttrans"></a>' : ''|n %> + </span> + <span class="date"><% $transdate|n %></span> +% my $desc = $Transaction->BriefDescription; +% $m->callback( text => \$desc, Transaction => $Transaction, %ARGS, CallbackName => 'ModifyDisplay' ); + <span class="description"> + <& /Elements/ShowUser, User => $Transaction->CreatorObj &> - <% $TicketString %> <% $desc %> + </span> +% $m->callback( TimeTaken => \$TimeTaken, Transaction => $Transaction, %ARGS, CallbackName => 'ModifyTimeTaken' ); + <span class="time-taken"><% $TimeTaken %></span> + <span class="actions<% $titlebar_commands ? '': ' hidden'%>"><% $titlebar_commands |n %></span> + </div> + + <div class="content"> +% if ( $Transaction->CustomFieldValues->Count ) { + <& /Elements/ShowCustomFields, Object => $Transaction &> +% } +% $m->comp('ShowTransactionAttachments', %ARGS, Parent => 0) unless ($Collapsed ||!$ShowBody); + </div> + +</div> +</div> + +<%ARGS> +$Ticket => undef +$Transaction => undef +$ShowHeaders => 0 +$Collapsed => undef +$ShowTitleBarCommands => 1 +$RowNum => 1 +$DisplayPath => RT->Config->Get('WebPath')."/Ticket/Display.html?id=".$Ticket->id +$AttachPath => RT->Config->Get('WebPath')."/Ticket/Attachment" +$UpdatePath => RT->Config->Get('WebPath')."/Ticket/Update.html" +$ForwardPath => RT->Config->Get('WebPath')."/Ticket/Forward.html" +$EncryptionPath => RT->Config->Get('WebPath')."/Ticket/GnuPG.html" +$EmailRecordPath => RT->Config->Get('WebPath')."/Ticket/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/ /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 $TicketString = ''; +if ( $Ticket->Id != $Transaction->Ticket ) { + $TicketString = loc("Ticket #[_1]:", $Transaction->Ticket) .' '; +} + +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) ); + $ARGS{'Attachments'} = $Attachments = $attachments->ItemsArrayRef(); +} +my $titlebar_commands = ''; + +if ( $type =~ /EmailRecord$/ ) { + + $titlebar_commands .= + "[<a target=\"_blank\" href=\"$EmailRecordPath?id=" + . $Transaction->Ticket + . "&Transaction=" + . $Transaction->Id + . "&Attachment=" + . ( $Attachments->[0] && $Attachments->[0]->id ) + . '">' . loc('Show') . "</a>] "; + $ShowBody = 0; +} + + +# If the transaction has anything attached to it at all +else { + + if ( $Attachments->[0] && $ShowTitleBarCommands ) { + my $ticket = $Transaction->TicketObj; + my $can_modify = $ticket->CurrentUserHasRight('ModifyTicket'); + if ( $can_modify || $ticket->CurrentUserHasRight('ReplyToTicket') ) { + $titlebar_commands .= + "[<a href=\"".$UpdatePath + . "?id=" . $Transaction->Ticket + . "&QuoteTransaction=" . $Transaction->Id + . "&Action=Respond\">" + . loc('Reply') + . "</a>] "; + } + if ( $can_modify || $ticket->CurrentUserHasRight('CommentOnTicket') ) { + $titlebar_commands .= + "[<a href=\"".$UpdatePath."?id=" + . $Transaction->Ticket + . "&QuoteTransaction=" + . $Transaction->Id + . "&Action=Comment\">" + . loc('Comment') . "</a>]"; + } + if ( $ticket->CurrentUserHasRight('ForwardMessage') ) { + $titlebar_commands .= + "[<a href=\"". $ForwardPath + . "?id=". $Transaction->Ticket + . "&QuoteTransaction=". $Transaction->Id + . "\">". loc('Forward') . "</a>]"; + } + if ( $can_modify + && RT->Config->Get('GnuPG')->{'Enable'} + && RT->Config->Get('GnuPG')->{'AllowEncryptDataInDB'} + && $ticket->CurrentUserHasRight('ForwardMessage') + ) { + $titlebar_commands .= + "[<a href=\"". $EncryptionPath + . "?id=". $Transaction->Id + . "\">". loc('Encrypt/Decrypt') . "</a>]"; + } + } +} +</%INIT> |