diff options
-rw-r--r-- | productmenu.js | 17 | ||||
-rwxr-xr-x | request.cgi | 2 | ||||
-rw-r--r-- | template/en/default/admin/flag-type/edit.html.tmpl | 9 | ||||
-rw-r--r-- | template/en/default/request/queue.html.tmpl | 8 |
4 files changed, 19 insertions, 17 deletions
diff --git a/productmenu.js b/productmenu.js index d917d325c..e633ab327 100644 --- a/productmenu.js +++ b/productmenu.js @@ -203,19 +203,26 @@ function selectProduct( f , productfield, componentfield, blank ) { // - 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; } diff --git a/request.cgi b/request.cgi index f872d1d28..b4b7e6766 100755 --- a/request.cgi +++ b/request.cgi @@ -266,7 +266,7 @@ sub queue { 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; diff --git a/template/en/default/admin/flag-type/edit.html.tmpl b/template/en/default/admin/flag-type/edit.html.tmpl index 253a310ac..c735ac33d 100644 --- a/template/en/default/admin/flag-type/edit.html.tmpl +++ b/template/en/default/admin/flag-type/edit.html.tmpl @@ -21,7 +21,7 @@ [% 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? @@ -33,10 +33,6 @@ [% 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 %] @@ -59,7 +55,8 @@ 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"> diff --git a/template/en/default/request/queue.html.tmpl b/template/en/default/request/queue.html.tmpl index 5a626b183..fbfa94d25 100644 --- a/template/en/default/request/queue.html.tmpl +++ b/template/en/default/request/queue.html.tmpl @@ -24,7 +24,7 @@ [% 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? @@ -36,10 +36,6 @@ [% 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"> @@ -133,6 +129,8 @@ 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 %] |