diff options
author | Byron Jones <bjones@mozilla.com> | 2014-01-28 07:15:01 +0100 |
---|---|---|
committer | Byron Jones <bjones@mozilla.com> | 2014-01-28 07:15:01 +0100 |
commit | 19282ec337a17cb4edeed7fc6eb02def285b2394 (patch) | |
tree | b2165d39623d9c8e0fb6adb56009d0c37506abf0 /Bugzilla/Search | |
parent | b7f003eb513877c6c19efd2f275e2ef5a918313e (diff) | |
download | bugzilla-19282ec337a17cb4edeed7fc6eb02def285b2394.tar.gz bugzilla-19282ec337a17cb4edeed7fc6eb02def285b2394.tar.xz |
Bug 76498: QuickSearch: support comparison operators other than substring
Diffstat (limited to 'Bugzilla/Search')
-rw-r--r-- | Bugzilla/Search/Quicksearch.pm | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/Bugzilla/Search/Quicksearch.pm b/Bugzilla/Search/Quicksearch.pm index 9c252d04f..6f0f8c939 100644 --- a/Bugzilla/Search/Quicksearch.pm +++ b/Bugzilla/Search/Quicksearch.pm @@ -116,6 +116,17 @@ use constant FIELD_OPERATOR => { owner_idle_time => 'greaterthan', }; +# Mappings for operators symbols to support operators other than "substring" +use constant OPERATOR_SYMBOLS => { + ':' => 'substring', + '=' => 'equals', + '!=' => 'notequals', + '>=' => 'greaterthaneq', + '<=' => 'lessthaneq', + '>' => 'greaterthan', + '<' => 'lessthan', +}; + # We might want to put this into localconfig or somewhere use constant PRODUCT_EXCEPTIONS => ( 'row', # [Browser] @@ -425,8 +436,9 @@ sub _handle_field_names { # Generic field1,field2,field3:value1,value2 notation. # We have to correctly ignore commas and colons in quotes. - my @field_values = _parse_line(':', 1, $or_operand); - if (scalar @field_values == 2) { + foreach my $symbol (keys %{ OPERATOR_SYMBOLS() }) { + my @field_values = _parse_line($symbol, 1, $or_operand); + next unless scalar @field_values == 2; my @fields = _parse_line(',', 1, $field_values[0]); my @values = _parse_line(',', 1, $field_values[1]); foreach my $field (@fields) { @@ -446,7 +458,9 @@ sub _handle_field_names { } foreach my $value (@values) { next unless defined $value; - my $operator = FIELD_OPERATOR->{$translated} || 'substring'; + my $operator = FIELD_OPERATOR->{$translated} + || OPERATOR_SYMBOLS->{$symbol} + || 'substring'; # If the string was quoted to protect some special # characters such as commas and colons, we need # to remove quotes. |