%# BEGIN LICENSE BLOCK %# %# Copyright (c) 1996-2002 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 <& /SelfService/Elements/Header, Title => loc('Display ticket #[_1]', $Ticket->id) &> <& /Elements/ListActions, actions => \@results &> % if ($Ticket->TimeWorked) { % }
<&|/l&>Ticket Id <%$Ticket->Id%>
<&|/l&>Requestors <%$Ticket->RequestorAddresses%>
<&|/l&>Cc <%$Ticket->CcAddresses%>
<&|/l&>Status <%$Ticket->Status%>
<&|/l&>Queue <%$Ticket->QueueObj->Name%> (<%$Ticket->QueueObj->Description%>)
<&|/l&>Priority <%$Ticket->Priority %>
<&|/l&>Worked <%$Ticket->TimeWorked %> minutes
% my ($i); %while (my $Transaction = $Transactions->Next) { % $i++; % if ($Transactions->IsLast) { % } <& /Ticket/Elements/ShowTransaction, Transaction => $Transaction, RowNum => $i, Ticket => $Ticket &> %}
<%INIT> my ($field, @results); # {{{ Load the ticket #If we get handed two ids, mason will make them an array. bleck. # We want teh first one. Just because there's no other sensible way # to deal my @id = (ref $id eq 'ARRAY') ? @{$id} : ($id); my $Ticket = new RT::Ticket($session{'CurrentUser'}); if ($id[0] eq 'new') { # {{{ Create a new ticket my $Queue = new RT::Queue($session{'CurrentUser'}); unless ($Queue->Load($ARGS{'Queue'})) { $m->comp('Error.html', Why => loc('Queue not found')); $m->abort; } unless ($Queue->CurrentUserHasRight('CreateTicket')) { $m->comp('Error.html', Why => loc('You have no permission to create tickets in that queue.')); $m->abort; } my @Requestors = split(/,/,$ARGS{'Requestors'}); my @Cc = split(/,/,$ARGS{'Cc'}); my $MIMEObj = MakeMIMEEntity ( Subject => $ARGS{'Subject'}, From => $ARGS{'From'}, Cc => $ARGS{'Cc'}, Body => $ARGS{'Content'}, AttachmentFieldName => 'Attach'); #TODO in Create_Details.html: priorities and due-date my ($id, $Trans, $ErrMsg)= $Ticket->Create(Queue=>$ARGS{Queue}, Requestor=> \@Requestors, Cc => \@Cc, Subject=>$ARGS{Subject}, MIMEObj => $MIMEObj ); unless ($id && $Trans) { $m->comp('Error.html', Why => $ErrMsg); $m->abort(); } push(@results, $ErrMsg); # }}} } else { unless ($Ticket->Load($id[0])) { $m->comp('Error.html', Why =>loc("Couldn't load ticket '[_1]'", $id)); $m->abort(); } } # }}} unless ($session{'CurrentUser'}->HasQueueRight ( TicketObj => $Ticket, Right => 'ShowTicket')) { $m->comp('Error.html', Why => loc("No permission to display that ticket")); $m->abort(); } my ($code, $msg); #Update the status if ((defined $ARGS{'Status'}) and ($ARGS{'Status'} ne $Ticket->Status)) { ($code, $msg) = $Ticket->SetStatus($ARGS{'Status'}); push @results, "$msg"; } ProcessUpdateMessage(ARGSRef=>\%ARGS, Actions=>\@results, TicketObj=>$Ticket); my $Transactions = $Ticket->Transactions; <%ARGS> $id => undef