[Rt-commit] rt branch, 4.4/cf-default-values, updated. rt-4.2.3-208-gde87aa3
? sunnavy
sunnavy at bestpractical.com
Thu Jun 12 11:18:55 EDT 2014
The branch, 4.4/cf-default-values has been updated
via de87aa304132574045362baa2d798b4cffb32e2e (commit)
from 734aa9eb50ce5872ad09eecdcdc18c88a46a0cc2 (commit)
Summary of changes:
lib/RT/CustomField.pm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
- Log -----------------------------------------------------------------
commit de87aa304132574045362baa2d798b4cffb32e2e
Author: sunnavy <sunnavy at bestpractical.com>
Date: Thu Jun 12 23:02:58 2014 +0800
remove deleted cf values from cf default values
since they are not valid any more
diff --git a/lib/RT/CustomField.pm b/lib/RT/CustomField.pm
index b36dfb8..f7a2aed 100644
--- a/lib/RT/CustomField.pm
+++ b/lib/RT/CustomField.pm
@@ -560,10 +560,33 @@ sub DeleteValue {
return (0, $self->loc("That is not a value for this custom field"));
}
+ my $value = $val_to_del->Name;
my $retval = $val_to_del->Delete;
unless ( $retval ) {
return (0, $self->loc("Custom field value could not be deleted"));
}
+
+ my $attrs = RT::Attributes->new($self->CurrentUser);
+ $attrs->Limit( FIELD => 'Name', VALUE => 'CustomFieldDefaultValues' );
+ while ( my $attr = $attrs->Next ) {
+ my $content = $attr->Content;
+ next unless $content;
+ my $default_values = $content->{$self->id};
+ return unless $default_values;
+ my $changed;
+ if ( ref $default_values eq 'ARRAY' ) {
+ if ( grep { $_ eq $value } @$default_values ) {
+ @{$content->{$self->id}} = grep { $_ ne $value } @$default_values;
+ $changed = 1;
+ }
+ }
+ elsif ( $default_values eq $value ) {
+ delete $content->{$self->id};
+ $changed = 1;
+ }
+ $attr->SetContent($content) if $changed;
+ }
+
return ($retval, $self->loc("Custom field value deleted"));
}
-----------------------------------------------------------------------
More information about the rt-commit
mailing list