]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Fix for bug 241814: properly trim component fields according to product selection...
authormyk%mozilla.org <>
Tue, 14 Dec 2004 10:29:57 +0000 (10:29 +0000)
committermyk%mozilla.org <>
Tue, 14 Dec 2004 10:29:57 +0000 (10:29 +0000)
productmenu.js
request.cgi
template/en/default/admin/flag-type/edit.html.tmpl
template/en/default/request/queue.html.tmpl

index d917d325c089dac6f2728a96dc31ec2067d25ded..e633ab3279d844c62fac8428a9f126f27500a840 100644 (file)
@@ -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;
             }
index cffad983fa1139f4ebf45e90fdfb3081e4dc9722..55629e20e86c84b39db3b307d187d9f83f512280 100755 (executable)
@@ -264,7 +264,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;
index 1faaaf3b87f1eb83de0ab72485fe4ccdc550a632..9e683cd992aa457eb6d485dc5430d59adaaceea8 100644 (file)
@@ -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?
   [% 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">
index 0eb3f21cde16e4c733ed97cd49b52e3b50375b7d..387110c506fa724d5e4129fe3d9d0e5003c2c965 100644 (file)
@@ -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?
   [% 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 %]