diff options
-rw-r--r-- | email_in.pl | 17 | ||||
-rwxr-xr-x | process_bug.cgi | 6 |
2 files changed, 10 insertions, 13 deletions
diff --git a/email_in.pl b/email_in.pl index 13e81e77e..02d00a3e2 100644 --- a/email_in.pl +++ b/email_in.pl @@ -213,22 +213,17 @@ sub process_bug { ValidateBugID($bug_id); my $bug = new Bugzilla::Bug($bug_id); - if ($fields{'assigned_to'}) { - $fields{'knob'} = 'reassign'; + if ($fields{'bug_status'}) { + $fields{'knob'} = $fields{'bug_status'}; } - if (my $status = $fields{'bug_status'}) { - $fields{'knob'} = 'confirm' if $status =~ /NEW/i; - $fields{'knob'} = 'accept' if $status =~ /ASSIGNED/i; - $fields{'knob'} = 'clearresolution' if $status =~ /REOPENED/i; - $fields{'knob'} = 'verify' if $status =~ /VERIFIED/i; - $fields{'knob'} = 'close' if $status =~ /CLOSED/i; + # If no status is given, then we only want to change the resolution. + elsif ($fields{'resolution'}) { + $fields{'knob'} = 'change_resolution'; + $fields{'resolution_knob_change_resolution'} = $fields{'resolution'}; } if ($fields{'dup_id'}) { $fields{'knob'} = 'duplicate'; } - if ($fields{'resolution'}) { - $fields{'knob'} = 'resolve'; - } # Make sure we don't get prompted if we have to change the default # groups. diff --git a/process_bug.cgi b/process_bug.cgi index 3f2235422..912440ce2 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -488,12 +488,14 @@ if (!$cgi->param('id') && $cgi->param('dup_id')) { foreach my $b (@bug_objects) { if (should_set('knob')) { # First, get the correct resolution <select>, in case there is more - # than one open -> closed transition allowed. + # than one open -> closed transition allowed. Allow to fallback to + # 'resolution' (useful when called from email_in.pl). my $knob = $cgi->param('knob'); my $status = new Bugzilla::Status({name => $knob}); my $resolution; if ($status) { - $resolution = $cgi->param('resolution_knob_' . $status->id); + $resolution = $cgi->param('resolution_knob_' . $status->id) + || $cgi->param('resolution'); } else { $resolution = $cgi->param('resolution_knob_change_resolution'); |