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 #
[% 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 %]