Index: query.cgi =================================================================== RCS file: /cvsroot/mozilla/webtools/bugzilla/query.cgi,v retrieving revision 1.173 diff -u -r1.173 query.cgi --- query.cgi +++ query.cgi @@ -122,7 +122,7 @@ "chfieldto", "chfieldvalue", "target_milestone", "email", "emailtype", "emailreporter", "emailassigned_to", "emailcc", "emailqa_contact", - "emaillongdesc", "content", + "emaillongdesc", "content", "reporter", "changedin", "votes", "short_desc", "short_desc_type", "long_desc", "long_desc_type", "bug_file_loc", "bug_file_loc_type", "status_whiteboard", @@ -161,6 +161,39 @@ push (@{$default{$name}}, @values); } } + + # reporter, qa_contact, assigned_to + my @avail; + # look for free Any one of rows + foreach my $anyoneof (1..2) { + next unless $default{'email'}->[$anyoneof]; + foreach my $kind (qw(emailassigned_to emailreporter emailqa_contact)) { + next unless $default{$kind}->[$anyoneof]; + push @avail, $anyoneof; + last; + } + } + my $chartn = 0; + foreach my $kind (qw(reporter qa_contact assigned_to)) { + next unless $default{$kind}; + if (@avail) { + my $anyoneof = shift @avail; + # If there's an available slot in "Any one of" + $default{'email'}->[$anyoneof] = $default{$kind}; + $default{"email$kind"}->[$anyoneof] = 1; + } else { + # Add another boolean chart. + # Look for the next free chart. + ++$chartn while $default{"field$chartn-1-0"} + || $default{"field$chartn-0-1"} + || ($default{"field$chartn-0-0"} + && $default{"field$chartn-0-0"} ne 'noop'); + $default{"field$chartn-0-0"} = $kind; + $default{"type$chartn-0-0"} = 'equals'; + $default{"value$chartn-0-0"} = $default{$kind}; + } + } + return $foundone; } Index: Bugzilla/Search.pm =================================================================== RCS file: /cvsroot/mozilla/webtools/bugzilla/Bugzilla/Search.pm,v retrieving revision 1.146 diff -u -r1.146 Bugzilla/Search.pm --- Bugzilla/Search.pm +++ Bugzilla/Search.pm @@ -222,8 +222,8 @@ my @legal_fields = ("product", "version", "rep_platform", "op_sys", "bug_status", "resolution", "priority", "bug_severity", - "assigned_to", "reporter", "component", "classification", - "target_milestone", "bug_group"); + "assigned_to", "reporter", "qa_contact", "component", + "classification", "target_milestone", "bug_group"); # Include custom select fields. push(@legal_fields, map { $_->name } @select_fields);