From 620f1dc8e4af47ed348caf9c1a8ba4e797d2b5e9 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Fri, 9 Oct 2020 16:42:26 +0200 Subject: [PATCH] DataTypeDirectorObject provide Notification Apply fixes #2199 --- library/Director/DataType/DataTypeDirectorObject.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/library/Director/DataType/DataTypeDirectorObject.php b/library/Director/DataType/DataTypeDirectorObject.php index 45c397fb..7f313e08 100644 --- a/library/Director/DataType/DataTypeDirectorObject.php +++ b/library/Director/DataType/DataTypeDirectorObject.php @@ -17,7 +17,7 @@ class DataTypeDirectorObject extends DataTypeHook $type = $this->getSetting('icinga_object_type'); $dummy = IcingaObject::createByType($type); - $display = $type === 'service_set' + $display = in_array($type, ['service_set', 'notification']) ? 'object_name' : 'COALESCE(display_name, object_name)'; $query = $db->select()->from($dummy->getTableName(), [ @@ -27,6 +27,8 @@ class DataTypeDirectorObject extends DataTypeHook if ($type === 'service_set') { $query->where('host_id IS NULL'); + } elseif ($type === 'notification') { + $query->where('object_type = ?', 'apply'); } else { $query->where('object_type = ?', 'object'); } @@ -35,17 +37,17 @@ class DataTypeDirectorObject extends DataTypeHook $params = []; if ($this->getSetting('data_type') === 'array') { - $type = 'extensibleSet'; + $elementType = $type === 'notification' ? 'select' : 'extensibleSet'; $params['sorted'] = true; $params = ['multiOptions' => $enum]; } else { $params = ['multiOptions' => [ null => $form->translate('- please choose -'), ] + $enum]; - $type = 'select'; + $elementType = 'select'; } - return $form->createElement($type, $name, $params); + return $form->createElement($elementType, $name, $params); } public static function addSettingsFormFields(QuickForm $form) @@ -53,6 +55,7 @@ class DataTypeDirectorObject extends DataTypeHook $enum = [ 'host' => $form->translate('Hosts'), 'hostgroup' => $form->translate('Host groups'), + 'notification' => $form->translate('Notification Apply Rules'), 'service' => $form->translate('Services'), 'servicegroup' => $form->translate('Service groups'), 'service_set' => $form->translate('Service Set'),