From b401bb998f49e722996ddac47c1938a8d4bfa4f9 Mon Sep 17 00:00:00 2001 From: moreamazingnick Date: Mon, 12 Jun 2023 10:06:45 +0200 Subject: [PATCH 1/2] fix/notification-command-inherited-fields-missing refs #2286 --- .../Web/Form/IcingaObjectFieldLoader.php | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/library/Director/Web/Form/IcingaObjectFieldLoader.php b/library/Director/Web/Form/IcingaObjectFieldLoader.php index c900edf6e..3f6f0bc5b 100644 --- a/library/Director/Web/Form/IcingaObjectFieldLoader.php +++ b/library/Director/Web/Form/IcingaObjectFieldLoader.php @@ -421,27 +421,32 @@ protected function prepareObjectFields($object) { $fields = $this->loadResolvedFieldsForObject($object); if ($object->hasRelation('check_command')) { - try { - /** @var IcingaCommand $command */ - $command = $object->getResolvedRelated('check_command'); - } catch (Exception $e) { - // Ignore failures - $command = null; - } - - if ($command) { - $cmdLoader = new static($command); - $cmdFields = $cmdLoader->getFields(); - foreach ($cmdFields as $varname => $field) { - if (! array_key_exists($varname, $fields)) { - $fields[$varname] = $field; - } + #for checks + $relation = "check_command"; + } elseif ($object->hasRelation('command')) { + #for notifications + $relation = "command"; + } + + try { + /** @var IcingaCommand $command */ + $command = $object->getResolvedRelated($relation); + } catch (Exception $e) { + // Ignore failures + $command = null; + } + + if ($command) { + $cmdLoader = new static($command); + $cmdFields = $cmdLoader->getFields(); + foreach ($cmdFields as $varname => $field) { + if (!array_key_exists($varname, $fields)) { + $fields[$varname] = $field; } } - - // TODO -> filters! } - + + // TODO -> filters! return $fields; } From 3c15c6bc9f9d8e945477f6f1ad83cd26e14293e3 Mon Sep 17 00:00:00 2001 From: moreamazingnick Date: Mon, 19 Feb 2024 17:21:47 +0100 Subject: [PATCH 2/2] fix/notification-command-inherited-fields-missing-codestyle --- library/Director/Web/Form/IcingaObjectFieldLoader.php | 1 + 1 file changed, 1 insertion(+) diff --git a/library/Director/Web/Form/IcingaObjectFieldLoader.php b/library/Director/Web/Form/IcingaObjectFieldLoader.php index 19adb249a..108ddd936 100644 --- a/library/Director/Web/Form/IcingaObjectFieldLoader.php +++ b/library/Director/Web/Form/IcingaObjectFieldLoader.php @@ -420,6 +420,7 @@ protected function mergeFields($listOfFields) protected function prepareObjectFields($object) { $fields = $this->loadResolvedFieldsForObject($object); + $relation = null; if ($object->hasRelation('check_command')) { #for checks $relation = "check_command";