From: Max Kanat-Alexander Date: Fri, 23 Jul 2010 01:35:59 +0000 (-0700) Subject: Bug 577054: Field::Choice was denying the deletion of any value if X-Git-Tag: bugzilla-3.6.2~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f7fbf1a764c15f2504e456054a00d644175a2fef;p=thirdparty%2Fbugzilla.git Bug 577054: Field::Choice was denying the deletion of any value if the field had *any* value-controlling values. r=LpSolit, a=LpSolit --- diff --git a/Bugzilla/Field/Choice.pm b/Bugzilla/Field/Choice.pm index 7e07ca1e2a..e7d5f542c9 100644 --- a/Bugzilla/Field/Choice.pm +++ b/Bugzilla/Field/Choice.pm @@ -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 # diff --git a/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl index 81a5b0f968..2ea7c2fb0b 100644 --- a/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl +++ b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl @@ -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 %]

Sorry, but the '[% value.name FILTER html %]' value cannot be deleted @@ -123,7 +123,7 @@ [% END %] - [% IF value.controlled_values.size %] + [% IF value.controlled_values_array.size %]

  • This value controls the visibility of the following values in other fields:
    [% FOREACH field_name = value.controlled_values.keys %]