X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FHelper%2FParseFilter.pm;h=0f7314179fcdddd9c31e84f5f6d738993f0cbe00;hb=2f5ea2de698efeaf8e7c31dcbc27b4e996f5e2ca;hp=e1b621f164823b4c280caaf298b6be8b35d9f62e;hpb=95f21f71c1c5c2f6cf6a281a0174d8f247be1135;p=kivitendo-erp.git diff --git a/SL/Controller/Helper/ParseFilter.pm b/SL/Controller/Helper/ParseFilter.pm index e1b621f16..0f7314179 100644 --- a/SL/Controller/Helper/ParseFilter.pm +++ b/SL/Controller/Helper/ParseFilter.pm @@ -125,7 +125,8 @@ sub _parse_filter { my ($type, $op) = $key =~ m{:(.+)::(.+)}; my $is_multi = $key =~ s/:multi//; - my @value_tokens = $is_multi ? parse_line('\s+', 0, $value) : ($value); + my $is_any = $key =~ s/:any//; + my @value_tokens = $is_multi || $is_any ? parse_line('\s+', 0, $value) : ($value); ($key, $method) = split m{::}, $key, 2; ($key, @filters) = split m{:}, $key; @@ -146,7 +147,7 @@ sub _parse_filter { next unless defined $key; - push @result, $is_multi ? (and => [ @args ]) : @args; + push @result, $is_multi ? (and => [ @args ]) : $is_any ? (or => [ @args ]) : @args; } return \@result; } @@ -297,11 +298,10 @@ customer. L allows you to search for these by filtering them p query => [ 'customer.name' => 'John Doe', - 'department.description' => [ like => '%Sales%' ], + 'department.description' => { ilike => '%Sales%' }, 'orddate' => { lt => DateTime->today }, ] - Unfortunately, if you specify them in your form as these strings, the form parser will convert them into nested structures like this: