From 53885205510c9e8cd4dda8dc9d36e7e7aef4d761 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Sat, 7 Oct 2017 17:14:54 +0200 Subject: [PATCH] FieldLoader: fix 'show based on filter' for... ...CustomVariables of type Array fixes #983 --- library/Director/Objects/ObjectApplyMatches.php | 2 +- library/Director/Web/Form/IcingaObjectFieldLoader.php | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/library/Director/Objects/ObjectApplyMatches.php b/library/Director/Objects/ObjectApplyMatches.php index db2c7b18..7a8a2206 100644 --- a/library/Director/Objects/ObjectApplyMatches.php +++ b/library/Director/Objects/ObjectApplyMatches.php @@ -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); diff --git a/library/Director/Web/Form/IcingaObjectFieldLoader.php b/library/Director/Web/Form/IcingaObjectFieldLoader.php index 68182429..5a49d2d1 100644 --- a/library/Director/Web/Form/IcingaObjectFieldLoader.php +++ b/library/Director/Web/Form/IcingaObjectFieldLoader.php @@ -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));