diff --git a/library/Director/Db.php b/library/Director/Db.php index 9f5159ff..7ec564ae 100644 --- a/library/Director/Db.php +++ b/library/Director/Db.php @@ -489,6 +489,15 @@ class Db extends DbConnection return $this->enumIcingaObjects('command', $filters); } + public function enumEventcommands() + { + $filters = array( + 'methods_execute = ?' => 'PluginEvent', + + ); + return $this->enumIcingaObjects('command', $filters); + } + public function enumNotificationCommands() { $filters = array( diff --git a/library/Director/Web/Form/DirectorObjectForm.php b/library/Director/Web/Form/DirectorObjectForm.php index fa9864c8..ab3d9e5a 100644 --- a/library/Director/Web/Form/DirectorObjectForm.php +++ b/library/Director/Web/Form/DirectorObjectForm.php @@ -1177,6 +1177,18 @@ abstract class DirectorObjectForm extends QuickForm )); $this->addToCheckExecutionDisplayGroup('check_command_id'); + $eventCommands = $this->db->enumEventCommands(); + + if (! empty($eventCommands)) { + $this->addElement('select', 'event_command_id', array( + 'label' => $this->translate('Event command'), + 'description' => $this->translate('Event command definition'), + 'multiOptions' => $this->optionalEnum($eventCommands), + 'class' => 'autosubmit', + )); + $this->addToCheckExecutionDisplayGroup('event_command_id'); + } + return $this; }