// - is_diff says if it's a full list or just a list of products that
// were added to the current selection.
// - single indicates if a single item was selected
+ // - selectedIndex is the index of the first selected item
+ // - selectedValue is the value of the first selected item
var sel = Array();
var is_diff = 0;
var single;
-
- // if nothing selected, pick all
- if ( f[productfield].selectedIndex == -1 ) {
- for ( var i = 0 ; i < f[productfield].length ; i++ ) {
+ var selectedIndex = f[productfield].selectedIndex;
+ var selectedValue = f[productfield].options[selectedIndex].value;
+
+ // If nothing is selected, or the selected item is the "blank" value
+ // at the top of the list which represents all products on drop-down menus,
+ // then pick all products so we show all components.
+ if ( selectedIndex == -1 || !cpts[selectedValue])
+ {
+ for ( var i = blank ? 1 : 0 ; i < f[productfield].length ; i++ ) {
sel[sel.length] = f[productfield].options[i].value;
}
single = 0;
} else {
- for ( i = 0 ; i < f[productfield].length ; i++ ) {
+ for ( i = blank ? 1 : 0 ; i < f[productfield].length ; i++ ) {
if ( f[productfield].options[i].selected ) {
sel[sel.length] = f[productfield].options[i].value;
}
my $selectable = GetSelectableProductHash();
$vars->{'products'} = $selectable->{legal_products};
$vars->{'components'} = $selectable->{legal_components};
- $vars->{'components_by_product'} = $selectable->{components};
+ $vars->{'components_by_product'} = $selectable->{components_by_product};
$vars->{'excluded_columns'} = \@excluded_columns;
$vars->{'group_field'} = $form_group;
[% PROCESS global/variables.none.tmpl %]
-[%# The javascript and header_html blocks get used in header.html.tmpl. %]
+[%# The javascript block gets used in header.html.tmpl. %]
[% javascript = BLOCK %]
var usetms = 0; // do we have target milestone?
var first_load = 1; // is this the first time we load the page?
[% END %]
[% END %]
-[% header_html = BLOCK %]
- <script language="JavaScript" type="text/javascript" src="productmenu.js"></script>
-[% END %]
-
[% IF type.target_type == "bug" %]
[% title = BLOCK %]Create Flag Type for [% terms.Bugs %][% END %]
[% typeLabelLowerPlural = BLOCK %][% terms.bugs %][% END %]
table#form th { text-align: right; vertical-align: baseline; white-space: nowrap; }
table#form td { text-align: left; vertical-align: baseline; }
"
- onload="selectProduct(forms[0], 'product', 'component', '__Any__');"
+ onload="selectProduct(document.forms[0], 'product', 'component', '__Any__');"
+ javascript_urls=["productmenu.js"]
%]
<form method="post" action="editflagtypes.cgi">
[% USE Bugzilla %]
[% cgi = Bugzilla.cgi %]
-[%# The javascript and header_html blocks get used in header.html.tmpl. %]
+[%# The javascript block gets used in header.html.tmpl. %]
[% javascript = BLOCK %]
var usetms = 0; // do we have target milestone?
var first_load = 1; // is this the first time we load the page?
[% END %]
[% END %]
-[% header_html = BLOCK %]
- <script language="JavaScript" type="text/javascript" src="productmenu.js"></script>
-[% END %]
-
[% filter_form = BLOCK %]
<form action="request.cgi" method="get">
<input type="hidden" name="action" value="queue">
table.requests th { text-align: left; }
table#filter th { text-align: right; }
"
+ onload="selectProduct(document.forms[0], 'product', 'component', 'Any');"
+ javascript_urls=["productmenu.js"]
%]
[% IF debug %]