From 3fade17bf48bb025771ba0cef736125e8c6a2971 Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Wed, 2 Dec 2015 21:31:38 +0100 Subject: [PATCH] IcingaHostForm: allow to select non-global zones --- application/forms/IcingaHostForm.php | 5 +++-- library/Director/Db.php | 6 ++++++ library/Director/Web/Form/DirectorObjectForm.php | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/application/forms/IcingaHostForm.php b/application/forms/IcingaHostForm.php index 94c27f54..3b852090 100644 --- a/application/forms/IcingaHostForm.php +++ b/application/forms/IcingaHostForm.php @@ -30,6 +30,7 @@ class IcingaHostForm extends DirectorObjectForm 'description' => $this->translate('Usually your hosts main IPv6 address') )); + $this->addZoneElement(); $this->addImportsElement(); /* @@ -44,6 +45,7 @@ class IcingaHostForm extends DirectorObjectForm 'display_name', 'address', 'address6', + 'zone_id', 'imports', ); $this->addDisplayGroup($elements, 'object_definition', array( @@ -61,8 +63,7 @@ class IcingaHostForm extends DirectorObjectForm } else { $this->getElement('imports')->setRequired(); } - $this->setButtons(); - // $this->addZoneElement(); + $this->setButtons(); } } diff --git a/library/Director/Db.php b/library/Director/Db.php index 16414ed5..526e667b 100644 --- a/library/Director/Db.php +++ b/library/Director/Db.php @@ -334,6 +334,12 @@ class Db extends DbConnection return $this->enumIcingaObjects('zone'); } + public function enumNonglobalZones() + { + $filters = array('is_global = ?' => 'n'); + return $this->enumIcingaObjects('zone', $filters); + } + public function enumZoneTemplates() { return $this->enumIcingaTemplates('zone'); diff --git a/library/Director/Web/Form/DirectorObjectForm.php b/library/Director/Web/Form/DirectorObjectForm.php index ca63229f..a66894bb 100644 --- a/library/Director/Web/Form/DirectorObjectForm.php +++ b/library/Director/Web/Form/DirectorObjectForm.php @@ -742,7 +742,7 @@ abstract class DirectorObjectForm extends QuickForm $this->addElement('select', 'zone_id', array( 'label' => $this->translate('Cluster Zone'), 'description' => $this->translate('Icinga cluster zone'), - 'multiOptions' => $this->optionalEnum($this->db->enumZones()) + 'multiOptions' => $this->optionalEnum($this->db->enumNonglobalZones()) )); return $this;