[Rt-commit] r16551 - in rt/branches/3.999-DANGEROUS: lib/RT/Action
sunnavy at bestpractical.com
sunnavy at bestpractical.com
Mon Oct 27 05:45:51 EDT 2008
Author: sunnavy
Date: Mon Oct 27 05:45:49 2008
New Revision: 16551
Modified:
rt/branches/3.999-DANGEROUS/ (props changed)
rt/branches/3.999-DANGEROUS/lib/RT/Action/EditTicketCFs.pm
Log:
r17414 at sunnavys-mb: sunnavy | 2008-10-27 17:17:12 +0800
improve cf action a bit
Modified: rt/branches/3.999-DANGEROUS/lib/RT/Action/EditTicketCFs.pm
==============================================================================
--- rt/branches/3.999-DANGEROUS/lib/RT/Action/EditTicketCFs.pm (original)
+++ rt/branches/3.999-DANGEROUS/lib/RT/Action/EditTicketCFs.pm Mon Oct 27 05:45:49 2008
@@ -113,35 +113,50 @@
}
}
+ my $not_add;
if ($values) {
my $delete_flag;
- foreach my $old_cf ( @{ $values->items_array_ref } ) {
- if ( !$delete_flag
- && @$new_values
- && $old_cf->content eq $new_values->[0] )
- {
- shift @$new_values;
- next;
+
+ if ( $cf->max_values == 1
+ && $values->count == 1
+ && @$new_values == 1 )
+ {
+# add_custom_field_value later can handle this
+ $not_add = 1
+ if $new_values->[0] eq $values->first->content;
+ }
+ else {
+ foreach my $old_cf ( @{ $values->items_array_ref } ) {
+ if ( !$delete_flag
+ && @$new_values
+ && $old_cf->content eq $new_values->[0] )
+ {
+ shift @$new_values;
+ next;
+ }
+ $delete_flag ||= 1;
+ my ( $val, $msg ) =
+ $ticket->delete_custom_field_value(
+ field => $cfid,
+ value_id => $old_cf->id,
+ );
+ Jifty->log->error($msg) unless $val;
+ push @{ $self->result->content('detailed_messages')
+ ->{ $cf->name } }, $msg;
}
- $delete_flag ||= 1;
- my ( $val, $msg ) = $ticket->delete_custom_field_value(
- field => $cfid,
- value_id => $old_cf->id,
+ }
+ }
+ for my $new_value (@$new_values) {
+ unless ($not_add) {
+ my ( $val, $msg ) = $ticket->add_custom_field_value(
+ field => $cfid,
+ value => $new_value,
);
Jifty->log->error($msg) unless $val;
push @{ $self->result->content('detailed_messages')
->{ $cf->name } }, $msg;
}
}
- for my $new_value (@$new_values) {
- my ( $val, $msg ) = $ticket->add_custom_field_value(
- field => $cfid,
- value => $new_value,
- );
- Jifty->log->error($msg) unless $val;
- push @{ $self->result->content('detailed_messages')
- ->{ $cf->name } }, $msg;
- }
}
}
}
More information about the Rt-commit
mailing list