Bug 138035 - fix ambiguity between showing all values and hiding in single product

git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1860 6955db30-a419-402b-8a0d-67ecbb4d7f56
master
vkoptev 2013-11-19 13:16:41 +00:00
parent 50a5e14f3a
commit eb8f56d70d
3 changed files with 25 additions and 4 deletions

View File

@ -479,6 +479,20 @@ sub has_visibility_value
return $hash->{$value};
}
sub visible_for_all
{
my $self = shift;
my ($default) = @_;
$default = 0 if !defined $default;
return $default if $self->name eq '---' || !$self->field->value_field_id;
my $hash = Bugzilla->fieldvaluecontrol_hash
->{$self->field->value_field_id}
->{values}
->{$self->field->id}
->{$self->id};
return !%$hash;
}
sub is_default_controlled_value
{
my $self = shift;

View File

@ -83,7 +83,6 @@ unless ($action) {
my $controlled_fields = { map { $_->id => $_ } values $field->controls_visibility_of() };
my @fields = Bugzilla->get_fields({custom => 1, sort => 1});
my $except_fields = { map { $_->id => { map { $_->id => 1 } values $_->controls_visibility_of } } @fields };
# die(Dumper $except_fields);
$vars->{'fields'} = [
map {
{
@ -101,9 +100,8 @@ unless ($action) {
exit;
}
if ($action eq 'update') {
# check_token_data($token, 'change_visibility');
# delete_token($token);
if ($action eq 'update' && $token) {
check_token_data($token, 'change_visibility');
my @fields = $cgi->param('fields[]');
my $controlled_fields = { map { $_->id => $_ } values $field->controls_visibility_of() };
@ -167,6 +165,7 @@ if ($action eq 'update') {
push @updated, $cfield->{field}->description;
}
}
delete_token($token);
$vars->{'field'} = $field;
$vars->{'value'} = $value;

View File

@ -53,7 +53,15 @@
<a title="Править значение..." href="editvalues.cgi?action=edit&field=[% field.name %]&value=[% value.name | uri %]">&rarr;</a>
</td>
<td align="center">
[% IF value.visible_for_all() %]
<input type="checkbox" id="val_[% value.id %]" value="[% value.id %]" name="values" onchange="changeDefaultEnabling(this);" checked="checked" disabled="disabled"/>
<p>
Значение видимо для всех значений поля <strong>[% field.value_field.description FILTER html %]</strong><br/>
<a href="editvalues.cgi?action=edit&field=[% field.name %]&value=[% value.name | uri %]">Редактировать</a>
</p>
[% ELSE %]
<input type="checkbox" id="val_[% value.id %]" value="[% value.id %]" name="values" onchange="changeDefaultEnabling(this);"[% ' checked="checked"' IF value.has_visibility_value(field_value.id, 0) %]/>
[% END %]
</td>
<td align="center">
<input type="[% (field.type == constants.FIELD_TYPE_MULTI_SELECT ? 'checkbox' : 'radio') %]" id="def_val_[% value.id %]" value="[% value.id %]" name="default_value_ids"[% ' checked="checked"' IF value.is_default_controlled_value(field_value.id, 0) %]/>