summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorolav%bkor.dhs.org <>2006-11-05 09:27:09 +0100
committerolav%bkor.dhs.org <>2006-11-05 09:27:09 +0100
commit8109df6a8bda8d2aa13f1e8545bccff0e06d42a7 (patch)
tree91403e3d55a226064b7840d63bf19a5985cc7e63
parent95da8f434f1cdf24e7702e0b807cb26eca986eb2 (diff)
downloadbugzilla-8109df6a8bda8d2aa13f1e8545bccff0e06d42a7.tar.gz
bugzilla-8109df6a8bda8d2aa13f1e8545bccff0e06d42a7.tar.xz
Bug 309167: change to product which has same component name results in no prompt for component and incorrect assignee
Patch by Olav Vitters <olav@bkor.dhs.org> r=LpSolit a=myk
-rwxr-xr-xprocess_bug.cgi17
-rw-r--r--template/en/default/bug/process/verify-new-product.html.tmpl19
-rw-r--r--template/en/default/global/select-menu.html.tmpl5
3 files changed, 30 insertions, 11 deletions
diff --git a/process_bug.cgi b/process_bug.cgi
index 33a5c75ec..d3f52641e 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -374,11 +374,14 @@ if (((defined $cgi->param('id') && $cgi->param('product') ne $oldproduct)
$mok = lsearch(\@milestone_names, $cgi->param('target_milestone')) >= 0;
}
- # If the product-specific fields need to be verified, or we need to verify
- # whether or not to add the bugs to their new product's group, display
- # a verification form.
- if (!$vok || !$cok || !$mok || (AnyDefaultGroups()
- && !defined $cgi->param('addtonewgroup'))) {
+ # We cannot be sure if the component is the same by only checking $cok; the
+ # current component name could exist in the new product. So always display
+ # the form and use the confirm_product_change param to check if that was
+ # shown. Also show the verification form if the product-specific fields
+ # somehow still need to be verified, or if we need to verify whether or not
+ # to add the bugs to their new product's group.
+ if (!$vok || !$cok || !$mok || !defined $cgi->param('confirm_product_change')
+ || (AnyDefaultGroups() && !defined $cgi->param('addtonewgroup'))) {
if (Bugzilla->usage_mode == USAGE_MODE_EMAIL) {
if (!$vok) {
@@ -398,7 +401,9 @@ if (((defined $cgi->param('id') && $cgi->param('product') ne $oldproduct)
}
}
- if (!$vok || !$cok || !$mok) {
+ if (!$vok || !$cok || !$mok
+ || !defined $cgi->param('confirm_product_change'))
+ {
$vars->{'verify_fields'} = 1;
my %defaults;
# We set the defaults to these fields to the old value,
diff --git a/template/en/default/bug/process/verify-new-product.html.tmpl b/template/en/default/bug/process/verify-new-product.html.tmpl
index 3b185993b..9b73abe97 100644
--- a/template/en/default/bug/process/verify-new-product.html.tmpl
+++ b/template/en/default/bug/process/verify-new-product.html.tmpl
@@ -47,6 +47,7 @@
[% PROCESS "global/hidden-fields.html.tmpl"
exclude=(verify_fields ? "^version|component|target_milestone$" : "") %]
+<input type="hidden" name="confirm_product_change" value="1">
[%# Verify the version, component, and target milestone fields. %]
[% IF verify_fields %]
<h3>Verify Version, Component[% ", Target Milestone" IF use_target_milestone %]</h3>
@@ -69,16 +70,28 @@
<tr>
<td>
<b>Version:</b><br>
- [% PROCESS "global/select-menu.html.tmpl" name="version" options=versions default=defaults.version %]
+ [% PROCESS "global/select-menu.html.tmpl"
+ name="version"
+ options=versions
+ default=defaults.version
+ size=10 %]
</td>
<td>
<b>Component:</b><br>
- [% PROCESS "global/select-menu.html.tmpl" name="component" options=components default=defaults.component %]
+ [% PROCESS "global/select-menu.html.tmpl"
+ name="component"
+ options=components
+ default=defaults.component
+ size=10 %]
</td>
[% IF use_target_milestone %]
<td>
<b>Target Milestone:</b><br>
- [% PROCESS "global/select-menu.html.tmpl" name="target_milestone" options=milestones default=defaults.target_milestone %]
+ [% PROCESS "global/select-menu.html.tmpl"
+ name="target_milestone"
+ options=milestones
+ default=defaults.target_milestone
+ size=10 %]
</td>
[% END %]
</tr>
diff --git a/template/en/default/global/select-menu.html.tmpl b/template/en/default/global/select-menu.html.tmpl
index 725ec88dd..3233ad776 100644
--- a/template/en/default/global/select-menu.html.tmpl
+++ b/template/en/default/global/select-menu.html.tmpl
@@ -24,7 +24,7 @@
#
# multiple: boolean; whether or not the menu is multi-select
#
- # size: integer; if multi-select, the number of items to display at once
+ # size: integer; the number of items to display at once
#
# options: array or hash; the items with which to populate the array.
# If a hash is passed, the hash keys become the names displayed
@@ -45,7 +45,8 @@
<select name="[% name FILTER html %]"
[% IF onchange %]onchange="[% onchange FILTER html %]"[% END %]
- [% IF multiple %] multiple [% IF size %] size="[% size %]" [% END %] [% END %]>
+ [% IF multiple %] multiple [% END %]
+ [% IF size %] size="[% size %]" [% END %]>
[% IF options_type.search("ARRAY") %]
[% FOREACH value = options %]
<option value="[% value FILTER html %]"