%# 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 <& /RTIR/Elements/Header, Title => loc("Edit Incident #[_1]: [_2]", $Ticket->Id, $Ticket->Subject) &> <& /RTIR/Incident/Elements/Tabs, Ticket => $Ticket, current_tab => "RTIR/Display.html?id=".$Ticket->Id, current_subtab => "RTIR/Edit.html?id=".$Ticket->Id, Title => loc("Edit Incident #[_1]: [_2]", $Ticket->Id, $Ticket->Subject) &> <& /Elements/ListActions, actions => \@results &> % unless ( $Ticket->CurrentUserHasRight('ModifyTicket') ) { <&|/l&>You are not allowed to edit this Incident. % return; % }
<&| /Widgets/TitleBox, title => loc('Modify incident # [_1]', $Ticket->Id), color=> "#993333", width => "100%" &>
<&|/l&>State: <& /RTIR/Elements/ShowRTIRField, Name => 'State', Ticket => $Ticket &>
<&|/l&>Owner: <& /Elements/SelectOwner, Name => 'Owner', QueueObj => $Ticket->QueueObj, TicketObj => $Ticket, Default => $Ticket->Owner &>
<&|/l&>Subject:
<&|/l&>Description: <& /RTIR/Elements/EditRTIRField, TicketObj => $Ticket, Name => 'Description', Cols => 60 &>
<&|/l&>Priority:
<&|/l&>Time Worked:
<&|/l&>Constituency: <& /RTIR/Elements/EditRTIRField, TicketObj => $Ticket, Name => 'Constituency', Rows => 1 &>
<&|/l&>Function: <& /RTIR/Elements/EditRTIRField, TicketObj => $Ticket, Name => 'Function', Rows => 1 &>
<&|/l&>Classification: <& /RTIR/Elements/EditRTIRField, TicketObj => $Ticket, Name => 'Classification', Rows => 1 &>
<&|/l&>IP: <& /RTIR/Elements/EditRTIRField, TicketObj => $Ticket, Name => 'IP', Cols => 40 &>
<&|/l&>Resolution: <& /RTIR/Elements/EditRTIRField, TicketObj => $Ticket, Name => 'Resolution', Rows => 1 &>
<&| /Widgets/TitleBox, title => loc('Dates'), width => "100%", color => "#663366" &> <& /RTIR/Elements/EditDates, TicketObj => $Ticket &>

<& /Elements/Submit, Name => 'SaveChanges', Label => loc('Save Changes'), Caption => loc("If you've updated anything above, be sure to"), color => "#333399" &>
<%INIT> my $Ticket = LoadTicket($id); $id = $ARGS{'id'} = $Ticket->Id; my $CanRespond = 0; my $CanComment = 0; $CanRespond = 1 if ( $Ticket->CurrentUserHasRight('ReplyToTicket') or $Ticket->CurrentUserHasRight('ModifyTicket') ); $CanComment = 1 if ( $Ticket->CurrentUserHasRight('CommentOnTicket') or $Ticket->CurrentUserHasRight('ModifyTicket') ); my @results; if ( $SaveChanges && !$OnlySearchForPeople ) { my $checks_failure = 0; my $oldstate = $Ticket->FirstCustomFieldValue('_RTIR_State'); push @results, ProcessTicketWatchers( TicketObj => $Ticket, ARGSRef => \%ARGS); push @results, ProcessTicketBasics( TicketObj => $Ticket, ARGSRef => \%ARGS); my ($status, @msg) = $m->comp('/Elements/ValidateCustomFields', CustomFields => $Ticket->QueueObj->TicketCustomFields, NamePrefix => "Object-RT::Ticket-$id-CustomField-", ARGSRef => \%ARGS, ); # we don't use messages as later ProcessTicketCustomFieldUpdates do that for us $checks_failure = 1 unless $status; push @results, ProcessTicketCustomFieldUpdates(ARGSRef => \%ARGS); push @results, ProcessTicketDates( TicketObj => $Ticket, ARGSRef => \%ARGS); my $strict_acl = RT->Config->Set( StrictLinkACL => 0 ); push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS); RT->Config->Set( StrictLinkACL => $strict_acl ); $ARGS{UpdateAttachments} = $session{'Attachments'}; push @results, ProcessUpdateMessage( TicketObj => $Ticket, ARGSRef=>\%ARGS ); my $newstate = $Ticket->FirstCustomFieldValue('_RTIR_State'); if ($newstate ne $oldstate) { push (@results, loc("State changed from [_1] to [_2]", $oldstate, $newstate)); } if ( !$checks_failure && RT->Config->Get('DisplayAfterEdit', $session{'CurrentUser'}) ) { return $m->comp("/RTIR/Incident/Display.html", results => [@results], id => $id ); } } # If they've gone and moved the ticket to somewhere they can't see, etc... # TODO: display the results, even if we can't display the ticket. unless ($Ticket->CurrentUserHasRight('ShowTicket')) { Abort("No permission to view ticket"); } <%ARGS> $OnlySearchForPeople => undef $SaveChanges => undef $id => undef