%# 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 <& /Elements/Header, Title => loc('Modify ticket #[_1]', $TicketObj->Id) &> <& /Ticket/Elements/Tabs, Ticket => $TicketObj, current_tab => "Ticket/Modify.html?id=".$TicketObj->Id &> <& /Elements/ListActions, actions => \@results &>
<& /Elements/TitleBoxStart, title => loc('Modify ticket #[_1]',$TicketObj->Id), color=> "#993333", width => "100%" &> <& Elements/EditBasics, TicketObj => $TicketObj &> <& Elements/EditCustomFields, TicketObj => $TicketObj &> <& /Elements/TitleBoxEnd &> <& /Elements/Submit, Label => loc('Save Changes'), Caption => loc("If you've updated anything above, be sure to"), color => "#993333" &>
<%INIT> my $Entries = {}; my $TicketObj = LoadTicket($id); my $CustomFields = $TicketObj->QueueObj->CustomFields(); while (my $CustomField = $CustomFields->Next()) { next unless ($CustomField->Type =~ /Entry$/); $Entries->{$CustomField->Id} = [ map { $_->Content } @{$TicketObj->CustomFieldValues($CustomField->Id)->ItemsArrayRef} ]; } # {{{ deal with deleting entered entries my $added_entry; foreach my $key (keys %ARGS) { if ($key =~ m/^DeleteEntry-(.+)$/) { foreach my $col (keys %$Entries) { splice(@{$Entries->{$col}}, $1, 1); } } if ($key =~ m/^AddEntry-(.+)$/) { $added_entry->{$1} = $ARGS{$key}; } } # }}} # {{{ now add back the new entries, if at least one value is given my $LastIndex = -1; foreach my $col (keys %$Entries) { $LastIndex = $#{$Entries->{$col}} if $#{$Entries->{$col}} > $LastIndex; } if (grep { $_ ne '' } values %$added_entry) { $LastIndex++; foreach my $col (keys %$added_entry) { $Entries->{$col}[$LastIndex] = $added_entry->{$col}; } } # }}} $ARGS{"Ticket-".$TicketObj->Id."-CustomField-$_-Values"} = $Entries->{$_} foreach keys %{$Entries}; my @results = ProcessTicketBasics(TicketObj => $TicketObj, ARGSRef => \%ARGS); my @cf_results = ProcessTicketCustomFieldUpdates(ARGSRef => \%ARGS); push (@results, @cf_results); # TODO: display the results, even if we can't display the ticket unless ($TicketObj->CurrentUserHasRight('ShowTicket')) { Abort("No permission to view ticket"); } <%ARGS> $id => undef