summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--productmenu.js17
-rwxr-xr-xrequest.cgi2
-rw-r--r--template/en/default/admin/flag-type/edit.html.tmpl9
-rw-r--r--template/en/default/request/queue.html.tmpl8
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 %]