diff options
author | lpsolit%gmail.com <> | 2006-02-08 07:25:23 +0100 |
---|---|---|
committer | lpsolit%gmail.com <> | 2006-02-08 07:25:23 +0100 |
commit | 93f433815b83ce1bf4bf2294fc152e52a274c9c8 (patch) | |
tree | 7b5530f3f60a5a29f33829cfae5686e26757f3a6 | |
parent | 10272c25189c97257eba249340a2c505c1a17725 (diff) | |
download | bugzilla-93f433815b83ce1bf4bf2294fc152e52a274c9c8.tar.gz bugzilla-93f433815b83ce1bf4bf2294fc152e52a274c9c8.tar.xz |
Bug 325048: [PostgreSQL] Changing the status of a bug from UNCONFIRMED to NEW or ASSIGNED sets everconfirmed to 1 but leave the status as UNCONFIRMED - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=myk
-rwxr-xr-x | process_bug.cgi | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/process_bug.cgi b/process_bug.cgi index 79ad8e517..a8a0f5f0d 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -24,7 +24,7 @@ # Christopher Aillon <christopher@aillon.com> # Myk Melez <myk@mozilla.org> # Jeff Hedlund <jeff.hedlund@matrixsi.com> -# Frédéric Buclin <LpSolit@gmail.com> +# Frédéric Buclin <LpSolit@gmail.com> # Lance Larsh <lance.larsh@oracle.com> # Implementation notes for this file: @@ -742,10 +742,14 @@ sub DoComma { $::comma = ","; } +# $everconfirmed is used by ChangeStatus() to determine whether we are +# confirming the bug or not. +my $everconfirmed; sub DoConfirm { if (CheckCanChangeField("canconfirm", scalar $cgi->param('id'), 0, 1)) { DoComma(); $::query .= "everconfirmed = 1"; + $everconfirmed = 1; } } @@ -787,11 +791,18 @@ sub ChangeStatus { my @open_state = map(SqlQuote($_), OpenStates()); my $open_state = join(", ", @open_state); + + # If we are changing everconfirmed to 1, we have to take this change + # into account and the new bug status is given by $str. + my $cond = SqlQuote($str); + # If we are not setting everconfirmed, the new bug status depends on + # the actual value of everconfirmed, which is bug-specific. + unless ($everconfirmed) { + $cond = "(CASE WHEN everconfirmed = 1 THEN " . $cond . + " ELSE 'UNCONFIRMED' END)"; + } $::query .= "bug_status = CASE WHEN bug_status IN($open_state) THEN " . - "(CASE WHEN everconfirmed = 1 THEN " . - SqlQuote($str) . " ELSE " . - " 'UNCONFIRMED' END) ELSE " . - "bug_status END"; + $cond . " ELSE bug_status END"; } else { $::query .= "bug_status = " . SqlQuote($str); } |