diff --git a/application/views/helpers/FormDataFilter.php b/application/views/helpers/FormDataFilter.php index 169e1c68..a348b737 100644 --- a/application/views/helpers/FormDataFilter.php +++ b/application/views/helpers/FormDataFilter.php @@ -154,7 +154,9 @@ class Zend_View_Helper_FormDataFilter extends Zend_View_Helper_FormElement if ($filter) { // TODO: Make this configurable $type = 'host'; + $filter = clone($filter); + $filter->setExpression(json_decode($filter->getExpression())); $dummy = IcingaObject::createByType($type); $col = $filter->getColumn(); if ($dummy->hasProperty($col)) { diff --git a/library/Director/Web/Form/Element/DataFilter.php b/library/Director/Web/Form/Element/DataFilter.php index 2c45d4b2..c75fdee3 100644 --- a/library/Director/Web/Form/Element/DataFilter.php +++ b/library/Director/Web/Form/Element/DataFilter.php @@ -231,7 +231,7 @@ class DataFilter extends FormElement return Filter::expression( $entry['column'], '=', - true + json_encode(true) ); } elseif ($entry['sign'] === 'in') { if (array_key_exists('value', $entry)) { @@ -248,13 +248,15 @@ class DataFilter extends FormElement return Filter::expression( $entry['column'], '=', - $value + json_encode($value) ); } else { + $value = array_key_exists('value', $entry) ? $entry['value'] : null; + return Filter::expression( $entry['column'], $entry['sign'], - array_key_exists('value', $entry) ? $entry['value'] : null + json_encode($value) ); } }