X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FHelper%2FParseFilter.pm;h=37b06737d1935fe8b13d9a8e2a703089ab1c1ceb;hb=17384c044b465c262772eb9737ea298069c4d826;hp=55e65e1b567b812076cfca5f4cdb7eea60d3d9a3;hpb=303a4d5d9c401254c2cf623a702a9e7676fb639f;p=kivitendo-erp.git diff --git a/SL/Controller/Helper/ParseFilter.pm b/SL/Controller/Helper/ParseFilter.pm index 55e65e1b5..37b06737d 100644 --- a/SL/Controller/Helper/ParseFilter.pm +++ b/SL/Controller/Helper/ParseFilter.pm @@ -10,6 +10,7 @@ use SL::Helper::DateTime; use List::MoreUtils qw(uniq); use SL::MoreCommon qw(listify); use Data::Dumper; +use Text::ParseWords; my %filters = ( date => sub { DateTime->from_lxoffice($_[0]) }, @@ -106,7 +107,7 @@ sub _parse_filter { if ($key =~ s/:multi//) { my @multi; my $orig_key = $key; - for my $value (split / /, $value) { + for my $value (parse_line('\s+', 0, $value)) { ($key, $value) = _apply_all($key, $value, qr/\b:(\w+)/, { %filters, %{ $params{filters} || {} } }); ($key, $value) = _apply_all($key, $value, qr/\b::(\w+)/, { %methods, %{ $params{methods} || {} } }); ($key, $value) = _dispatch_custom_filters($params{class}, $with_objects, $key, $value) if $params{class}; @@ -166,7 +167,7 @@ sub _dispatch_custom_filters { my $obj_prefix = join '.', @tokens, ''; if ($manager->can('filter')) { - ($key, $value, my $obj) = $manager->filter($last_token, $value, $obj_prefix); + ($key, $value, my $obj) = $manager->filter($last_token, $value, $obj_prefix, $obj_path); _add_uniq($with_objects, $obj) if $obj; } else { _add_uniq($with_objects, $obj_path) if $obj_path;