summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2007-03-10 19:20:01 +0100
committerlpsolit%gmail.com <>2007-03-10 19:20:01 +0100
commit839d66da3f158712fe59bf5fd480df12512f4bf6 (patch)
tree7343c60a28bff6caaaaaf3f6a001d405a5f54991
parentc2a52392f06eb2ae403ddcb13dd414dc4828090f (diff)
downloadbugzilla-839d66da3f158712fe59bf5fd480df12512f4bf6.tar.gz
bugzilla-839d66da3f158712fe59bf5fd480df12512f4bf6.tar.xz
Bug 373411: The bug resolution can be set independently of the bug status - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=LpSolit
-rwxr-xr-xprocess_bug.cgi11
-rw-r--r--template/en/default/global/user-error.html.tmpl4
2 files changed, 15 insertions, 0 deletions
diff --git a/process_bug.cgi b/process_bug.cgi
index fd0c3eb9d..18097d084 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -1110,6 +1110,17 @@ SWITCH: for ($cgi->param('knob')) {
ChangeStatus('RESOLVED');
}
+ else {
+ # You cannot use change_resolution if there is at least
+ # one open bug.
+ my $open_states = join(',', map {$dbh->quote($_)} BUG_STATE_OPEN);
+ my $idlist = join(',', @idlist);
+ my $is_open =
+ $dbh->selectrow_array("SELECT 1 FROM bugs WHERE bug_id IN ($idlist)
+ AND bug_status IN ($open_states)");
+
+ ThrowUserError('resolution_not_allowed') if $is_open;
+ }
ChangeResolution($bug, $cgi->param('resolution'));
last SWITCH;
diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl
index b2a3624b2..01368f06d 100644
--- a/template/en/default/global/user-error.html.tmpl
+++ b/template/en/default/global/user-error.html.tmpl
@@ -1286,6 +1286,10 @@
[% title = "Summary Needed" %]
You must enter a summary for this [% terms.bug %].
+ [% ELSIF error == "resolution_not_allowed" %]
+ [% title = "Resolution Not Allowed" %]
+ You cannot set a resolution for open [% terms.bugs %].
+
[% ELSIF error == "saved_search_used_by_whines" %]
[% title = "Saved Search In Use" %]
[% docslinks = {'whining.html' => 'About Whining'} %]