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