]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 577054: Field::Choice was denying the deletion of any value if
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Fri, 23 Jul 2010 01:35:59 +0000 (18:35 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Fri, 23 Jul 2010 01:35:59 +0000 (18:35 -0700)
the field had *any* value-controlling values.
r=LpSolit, a=LpSolit

Bugzilla/Field/Choice.pm
template/en/default/admin/fieldvalues/confirm-delete.html.tmpl

index 7e07ca1e2a159df18916913d82783e73660f6f01..e7d5f542c9ddc8729d56bbf8b0f5751bf338e653 100644 (file)
@@ -202,14 +202,19 @@ sub remove_from_db {
 sub _check_if_controller {
     my $self = shift;
     my $vis_fields = $self->controls_visibility_of_fields;
-    my $values     = $self->controlled_values;
-    if (@$vis_fields || scalar(keys %$values)) {
+    my $values = $self->controlled_values_array;
+    if (@$vis_fields || @$values) {
         ThrowUserError('fieldvalue_is_controller',
             { value => $self, fields => [map($_->name, @$vis_fields)],
-              vals => $values });
+              vals => $self->controlled_values });
     }
 }
 
+sub controlled_values_array {
+    my ($self) = @_;
+    my $values = $self->controlled_values;
+    return [map { @{ $values->{$_} } } keys %$values];
+}
 
 #############
 # Accessors #
index 81a5b0f96868f1177cd3d143ee863330d8d44d75..2ea7c2fb0beade70590794411367e8d15c647da5 100644 (file)
@@ -63,7 +63,7 @@
 
 [% IF value.is_default || value.bug_count || (value_count == 1)
       || value.controls_visibility_of_fields.size
-      || value.controlled_values.size 
+      || value.controlled_values_array.size 
 %]
 
   <p>Sorry, but the '[% value.name FILTER html %]' value cannot be deleted
       </li>
     [% END %]
 
-    [% IF value.controlled_values.size %]
+    [% IF value.controlled_values_array.size %]
       <li>This value controls the visibility of the following values in
         other fields:<br>
        [% FOREACH field_name = value.controlled_values.keys %]