ParseFilter: neuer Operator 'eq_ignore_empty'
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 5 Aug 2013 08:22:35 +0000 (10:22 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 5 Aug 2013 08:41:34 +0000 (10:41 +0200)
Ignoriert den Filter, wenn er leer ist. Andernfalls wird mit =
verglichen.

SL/Controller/Helper/ParseFilter.pm

index 1d0515c..db59408 100644 (file)
@@ -22,6 +22,7 @@ my %filters = (
 
 my %methods = (
   enable => sub { ;;;; },
+  eq_ignore_empty => sub { ($_[0] // '') eq '' ? () : +{ eq => $_[0] } },
   map {
     # since $_ is an alias it can't be used in a closure. even "".$_ or "$_"
     # does not work, we need a real copy.
@@ -383,6 +384,11 @@ Adds "%" at the end of the string.
 
 Adds "% .. %" around the search string.
 
+=item eq_ignore_empty
+
+Ignores this item if it's empty. Otherwise compares it with the
+standard SQL C<=> operator.
+
 =back
 
 =head2 METHODS (leading with ::)