From e82fe9ae884fa439494a4755cfcc218481ae094d Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Wed, 20 May 2009 20:55:08 +0000 Subject: Bug 302511: Remove QuickSearch's dependency on default priority values Patch by Max Kanat-Alexander r=wurblzap, a=mkanat --- Bugzilla/Search/Quicksearch.pm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'Bugzilla') diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index 54f6c9366..70b5e2f2c 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)} -- cgit v1.2.3-24-g4f1b