r/a=LpSolit git-svn-id: svn://10.0.0.236/trunk@264568 18797224-902f-48f8-a5cc-f745e15eee43
60 lines
2.2 KiB
Cheetah
60 lines
2.2 KiB
Cheetah
[%# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
#
|
|
# This Source Code Form is "Incompatible With Secondary Licenses", as
|
|
# defined by the Mozilla Public License, v. 2.0.
|
|
#%]
|
|
|
|
[%# INTERFACE:
|
|
# field: a Bugzilla::Field object
|
|
# product: (optional) a Bugzilla::Product object. When specified,
|
|
# components are restricted to this product.
|
|
#%]
|
|
|
|
[% FOREACH controlled_field = field.controls_visibility_of %]
|
|
[% vis_names = [] %]
|
|
[% FOREACH visibility_value = controlled_field.visibility_values %]
|
|
[%# Exclude non-enterable products and components outside the current product. %]
|
|
[% NEXT IF field.name == "product"
|
|
&& visibility_value.id != product.id
|
|
&& !user.can_enter_product(visibility_value) %]
|
|
[% NEXT IF field.name == "component" && visibility_value.product_id != product.id %]
|
|
[% vis_names.push(visibility_value.name) %]
|
|
[% END %]
|
|
|
|
[% NEXT UNLESS vis_names.size %]
|
|
|
|
showFieldWhen('[% controlled_field.name FILTER js %]',
|
|
'[% field.name FILTER js %]', [
|
|
[%~ FOREACH vis_name = vis_names ~%]
|
|
'[% vis_name FILTER js %]'[% "," UNLESS loop.last %]
|
|
[%~ END ~%]
|
|
]);
|
|
[% END %]
|
|
|
|
[% legal_values = [] %]
|
|
[% IF field.name == "component" AND product %]
|
|
[% legal_values = product.components %]
|
|
[% ELSE %]
|
|
[% legal_values = field.legal_values %]
|
|
[% END %]
|
|
|
|
[% FOREACH legal_value = legal_values %]
|
|
[% FOREACH controlled_field = legal_value.controlled_values.keys %]
|
|
[% SET cont_ids = [] %]
|
|
[% FOREACH val = legal_value.controlled_values.$controlled_field %]
|
|
[% NEXT IF !val.is_active %]
|
|
[% cont_ids.push(val.id) %]
|
|
[% END %]
|
|
[% NEXT IF !cont_ids.size %]
|
|
showValueWhen('[% controlled_field FILTER js %]',
|
|
[[% cont_ids.join(',') FILTER js %]],
|
|
'[% field.name FILTER js %]',
|
|
[% legal_value.id FILTER js %]);
|
|
[% END %]
|
|
[% END %]
|
|
[% IF field.name == 'classification' %]
|
|
YAHOO.util.Event.on('product', 'change', setClassification);
|
|
[% END %]
|