FieldLoader: fix 'show based on filter' for...

...CustomVariables of type Array

fixes #983
This commit is contained in:
Thomas Gelf 2017-10-07 17:14:54 +02:00
parent b1bf944c59
commit 5388520551
2 changed files with 4 additions and 2 deletions

View File

@ -123,7 +123,7 @@ abstract class ObjectApplyMatches
return $objects;
}
protected static function fixFilterColumns(Filter $filter)
public static function fixFilterColumns(Filter $filter)
{
if ($filter->isExpression()) {
static::fixFilterExpressionColumn($filter);

View File

@ -12,6 +12,7 @@ use Icinga\Module\Director\Objects\IcingaHost;
use Icinga\Module\Director\Objects\IcingaObject;
use Icinga\Module\Director\Objects\DirectorDatafield;
use Icinga\Module\Director\Objects\IcingaService;
use Icinga\Module\Director\Objects\ObjectApplyMatches;
use stdClass;
use Zend_Db_Select as ZfSelect;
use Zend_Form_Element as ZfElement;
@ -253,7 +254,7 @@ class IcingaObjectFieldLoader
$vars = $object::fromPlainObject(
$object->toPlainObject(true),
$object->getConnection()
)->vars()->flatten();
)->getVars();
$prefixedVars = (object) array();
foreach ($vars as $k => $v) {
@ -261,6 +262,7 @@ class IcingaObjectFieldLoader
}
foreach ($filters as $key => $filter) {
ObjectApplyMatches::fixFilterColumns($filter);
/** @var $filter FilterChain|FilterExpression */
foreach ($filter->listFilteredColumns() as $column) {
$column = substr($column, strlen($prefix));