GetModels Filtered: neuer Modifer »any« für logisches oder
authorMoritz Bunkus <m.bunkus@linet.de>
Wed, 10 Feb 2021 10:48:25 +0000 (11:48 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Wed, 10 Feb 2021 10:48:25 +0000 (11:48 +0100)
Kann benutzt werden, um z.B. verschiedene Part-Klassifizierungs-IDs im
Filter zu nutzen:

<input type="hidden" name="filter.classification_id:any" value="0 1 3">

SL/Controller/Helper/ParseFilter.pm

index f91d671..0f73141 100644 (file)
@@ -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;
 }