%# $File: //depot/RT/rt/local/html/Callbacks/Entry/Ticket/Modify.html/Default $ $Author: autrijus $
%# $Revision: #3 $ $Change: 6072 $ $DateTime: 2003/05/24 19:50:58 $
<%INIT>
my $Entries = {};

while (my $CustomField = $CustomFields->Next()) {
    next unless ($CustomField->IsEntry);
    $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};

</%INIT>
<%ARGS>
$TicketObj
$CustomFields
</%ARGS>
