mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-29 08:44:11 +02:00
DirectorObjectForm: methods dealing with fields
This commit is contained in:
parent
364904e8e7
commit
9d4bd323a8
@ -3,6 +3,7 @@
|
|||||||
namespace Icinga\Module\Director\Web\Form;
|
namespace Icinga\Module\Director\Web\Form;
|
||||||
|
|
||||||
use Icinga\Module\Director\Objects\IcingaObject;
|
use Icinga\Module\Director\Objects\IcingaObject;
|
||||||
|
use Icinga\Module\Director\Objects\DirectorDatafield;
|
||||||
use Zend_Form_Element_Select as Zf_Select;
|
use Zend_Form_Element_Select as Zf_Select;
|
||||||
|
|
||||||
abstract class DirectorObjectForm extends QuickForm
|
abstract class DirectorObjectForm extends QuickForm
|
||||||
@ -150,6 +151,44 @@ abstract class DirectorObjectForm extends QuickForm
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function addFields()
|
||||||
|
{
|
||||||
|
$object = $this->object();
|
||||||
|
$fields = $object->getResolvedFields();
|
||||||
|
$vars = $object->vars();
|
||||||
|
|
||||||
|
foreach ($fields as $field) {
|
||||||
|
$varname = $field->varname;
|
||||||
|
if (isset($vars->$varname)) {
|
||||||
|
$value = $vars->{$varname}->getValue();
|
||||||
|
} else {
|
||||||
|
$value = null;
|
||||||
|
}
|
||||||
|
$inherited = null; // Just testing
|
||||||
|
$this->addField($field, $value, $inherited);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function addField($field, $value = null, $inherited = null)
|
||||||
|
{
|
||||||
|
$datafield = DirectorDatafield::load($field->datafield_id, $this->getDb());
|
||||||
|
$datatype = new $datafield->datatype;
|
||||||
|
$datatype->setSettings($datafield->getSettings());
|
||||||
|
|
||||||
|
$name = 'var_' . $datafield->varname;
|
||||||
|
$el = $datatype->getFormElement($name, $this);
|
||||||
|
|
||||||
|
$el->setLabel($datafield->caption);
|
||||||
|
$el->setDescription($datafield->description);
|
||||||
|
|
||||||
|
if ($field->is_required === 'y') {
|
||||||
|
$el->setRequired(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->addElement($el);
|
||||||
|
$this->setElementValue($name, $value, $inherited);
|
||||||
|
}
|
||||||
|
|
||||||
protected function setElementValue($name, $value = null, $inherited = null)
|
protected function setElementValue($name, $value = null, $inherited = null)
|
||||||
{
|
{
|
||||||
$el = $this->getElement($name);
|
$el = $this->getElement($name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user