diff options
-rwxr-xr-x | enter_bug.cgi | 34 | ||||
-rw-r--r-- | template/en/default/bug/create/create.html.tmpl | 16 |
2 files changed, 34 insertions, 16 deletions
diff --git a/enter_bug.cgi b/enter_bug.cgi index c8ceed212..4bda17ac4 100755 --- a/enter_bug.cgi +++ b/enter_bug.cgi @@ -355,18 +355,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 " . diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl index 816b90038..54ff22fbd 100644 --- a/template/en/default/bug/create/create.html.tmpl +++ b/template/en/default/bug/create/create.html.tmpl @@ -71,12 +71,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> @@ -169,14 +163,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"> |