From 92129e7250e8fd9af8330de686ad5f77b6b73932 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Thu, 24 Jan 2008 03:49:31 +0000 Subject: Bug 391669: Modifying a bug via email_in.pl fails because there are many fields that process_bug.cgi requires but aren't provided to it - Patch by Frédéric Buclin r=mkanat a=LpSolit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- email_in.pl | 17 ++++++----------- 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