[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