From 24f7e36e927b7d295a7941024ca366711897038e Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Fri, 31 Jul 2015 14:47:03 +0200 Subject: [PATCH] DataTypeSqlQuery: do not break form on errors --- library/Director/DataType/DataTypeSqlQuery.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/library/Director/DataType/DataTypeSqlQuery.php b/library/Director/DataType/DataTypeSqlQuery.php index 06a61693..fa1b05a2 100644 --- a/library/Director/DataType/DataTypeSqlQuery.php +++ b/library/Director/DataType/DataTypeSqlQuery.php @@ -2,6 +2,7 @@ namespace Icinga\Module\Director\DataType; +use Exception; use Icinga\Data\Db\DbConnection; use Icinga\Module\Director\Web\Form\QuickForm; use Icinga\Module\Director\Web\Hook\DataTypeHook; @@ -17,11 +18,22 @@ class DataTypeSqlQuery extends DataTypeHook public function getFormElement($name, QuickForm $form) { + try { + $data = $this->fetchData(); + $error = false; + } catch (Exception $e) { + $data = array(); + $error = sprintf($form->translate('Unable to fetch data: %s'), $e->getMessage()); + } + $element = $form->createElement('select', $name, array( - 'multiOptions' => array(null => '- please choose -') + - $this->fetchData(), + 'multiOptions' => $form->optionalEnum($data), )); + if ($error) { + $element->addError($error); + } + return $element; }