]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Patch for bug 273873: bug-creation template for UNCONFIRMED shouldn't set status...
authorjocuri%softhome.net <>
Sun, 12 Dec 2004 09:41:09 +0000 (09:41 +0000)
committerjocuri%softhome.net <>
Sun, 12 Dec 2004 09:41:09 +0000 (09:41 +0000)
enter_bug.cgi
template/en/default/bug/create/create.html.tmpl

index cbe2929aa1c8821d3db5900a62b713946a5bdd47..f51351599bed79ce17b2a352ebf63f5dd1dc8fd7 100755 (executable)
@@ -304,18 +304,38 @@ if (formvalue('version')) {
     $default{'version'} = $vars->{'version'}->[$#{$vars->{'version'}}];
 }
 
-# There must be at least one status in @status.
-my @status = "NEW";
+# List of status values for drop-down.
+my @status;
 
-if (UserInGroup("editbugs") || UserInGroup("canconfirm")) {
-    SendSQL("SELECT votestoconfirm FROM products WHERE name = " .
-            SqlQuote($product));
-    push(@status, $unconfirmedstate) if (FetchOneColumn());
+# Construct the list of allowable values.  There are three cases:
+# 
+#  case                                 values
+#  product does not have confirmation   NEW
+#  confirmation, user cannot confirm    UNCONFIRMED
+#  confirmation, user can confirm       NEW, UNCONFIRMED.
+
+SendSQL("SELECT votestoconfirm FROM products WHERE name = " .
+        SqlQuote($product));
+if (FetchOneColumn()) {
+    if (UserInGroup("editbugs") || UserInGroup("canconfirm")) {
+        push(@status, "NEW");
+    }
+    push(@status, $unconfirmedstate);
+} else {
+    push(@status, "NEW");
 }
 
 $vars->{'bug_status'} = \@status; 
-$default{'bug_status'} = $status[0];
 
+# Get the default from a template value if it is legitimate.
+# Otherwise, set the default to the first item on the list.
+
+if (formvalue('bug_status') && (lsearch(\@status, formvalue('bug_status')) >= 0)) {
+    $default{'bug_status'} = formvalue('bug_status');
+} else {
+    $default{'bug_status'} = $status[0];
+}
 SendSQL("SELECT DISTINCT groups.id, groups.name, groups.description, " .
         "membercontrol, othercontrol " .
         "FROM groups LEFT JOIN group_control_map " .
index 274e30ca70696cd8690df3a3899a8576ac685193..d8954a2a395f6c65cd67910f86a7cf4b641a4658 100644 (file)
@@ -70,12 +70,6 @@ function set_assign_to() {
 <form name="Create" id="Create" method="post" action="post_bug.cgi">
 <input type="hidden" name="product" value="[% product FILTER html %]">
 
-[% IF bug_status.size <= 1 %]
-  <input type="hidden" name="bug_status" 
-         value="[% default.bug_status FILTER html %]">
-[% END %]
-
-
 <table cellspacing="2" cellpadding="0" border="0">
 
   <tr>
@@ -168,14 +162,18 @@ function set_assign_to() {
     <td colspan="3"></td>
   </tr>
 
-[% IF bug_status.size > 1 %]
   <tr>
+[% IF bug_status.size <= 1 %]
+  <input type="hidden" name="bug_status" 
+         value="[% default.bug_status FILTER html %]">
+    <td align="right" valign="top"><strong>Initial State:</strong></td>
+    <td valign="top">[% default.bug_status FILTER html %]</td>
+[% ELSE %]
     [% sel = { description => 'Initial State', name => 'bug_status' } %]
     [% INCLUDE select %]
-
+[% END %]
     <td colspan="2"></td>
   </tr>
-[% END %]
 
   <tr>
     <td align="right">