summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-23 03:33:58 +0200
committerMax Kanat-Alexander <mkanat@bugzilla.org>2010-07-23 03:33:58 +0200
commitb1fa012bc8f89aa7a4a86cc2b7d97d68136358f7 (patch)
tree095f71c6c259983217c74b09ad9214d120a589a4
parente11091837644b7d5c2ddbea657548ae222c2884b (diff)
downloadbugzilla-b1fa012bc8f89aa7a4a86cc2b7d97d68136358f7.tar.gz
bugzilla-b1fa012bc8f89aa7a4a86cc2b7d97d68136358f7.tar.xz
Bug 577054: ChoiceInterface was denying the deletion of any value if
the field had *any* value-controlling values. r=LpSolit, a=LpSolit
-rw-r--r--Bugzilla/Field/ChoiceInterface.pm12
-rw-r--r--template/en/default/admin/fieldvalues/confirm-delete.html.tmpl4
2 files changed, 11 insertions, 5 deletions
diff --git a/Bugzilla/Field/ChoiceInterface.pm b/Bugzilla/Field/ChoiceInterface.pm
index a718377c2..894ce00d3 100644
--- a/Bugzilla/Field/ChoiceInterface.pm
+++ b/Bugzilla/Field/ChoiceInterface.pm
@@ -39,11 +39,11 @@ sub FIELD_NAME { return $_[0]->DB_TABLE; }
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 });
}
}
@@ -142,6 +142,12 @@ sub controlled_values {
return $self->{controlled_values};
}
+sub controlled_values_array {
+ my ($self) = @_;
+ my $values = $self->controlled_values;
+ return [map { @{ $values->{$_} } } keys %$values];
+}
+
sub is_visible_on_bug {
my ($self, $bug) = @_;
diff --git a/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl
index 547cac636..088154120 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
%]
<p>Sorry, but the '[% value.name FILTER html %]' value cannot be deleted
@@ -123,7 +123,7 @@
</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 %]