From: mkanat%bugzilla.org <> Date: Wed, 20 May 2009 20:55:08 +0000 (+0000) Subject: Bug 302511: Remove QuickSearch's dependency on default priority values X-Git-Tag: bugzilla-3.5.1~228 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e82fe9ae884fa439494a4755cfcc218481ae094d;p=thirdparty%2Fbugzilla.git Bug 302511: Remove QuickSearch's dependency on default priority values Patch by Max Kanat-Alexander r=wurblzap, a=mkanat --- diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index 54f6c93664..70b5e2f2cc 100644 --- a/Bugzilla/Search/Quicksearch.pm +++ b/Bugzilla/Search/Quicksearch.pm @@ -159,6 +159,7 @@ sub quicksearch { # It's no alias either, so it's a more complex query. my $legal_statuses = get_legal_field_values('bug_status'); my $legal_resolutions = get_legal_field_values('resolution'); + my $legal_priorities = get_legal_field_values('priority'); # Globally translate " AND ", " OR ", " NOT " to space, pipe, dash. $searchstring =~ s/\s+AND\s+/ /g; @@ -313,9 +314,24 @@ sub quicksearch { $word, $negate); } # Priority - elsif ($word =~ m/^[pP]([1-5](-[1-5])?)$/) { - addChart('priority', 'regexp', - "[$1]", $negate); + elsif (grep { lc($_) eq lc($word) } + @$legal_priorities) + { + addChart('priority', 'equals', $word, $negate); + } + # P1-5 Syntax + elsif ($word =~ m/^P(\d+)(?:-(\d+))?$/i) { + my $start = $1 - 1; + $start = 0 if $start < 0; + my $end = $2 - 1; + $end = scalar(@$legal_priorities) - 1 + if $end > (scalar @$legal_priorities - 1); + my $prios = $legal_priorities->[$start]; + if ($end) { + $prios = join(',', @$legal_priorities[$start..$end]) + } + addChart('priority', 'anyexact', $prios, + $negate); } # Severity elsif (grep({lc($word) eq substr($_, 0, 3)}