IcingaMultiEditForm: use IcingaObjectFormHook

This commit is contained in:
Thomas Gelf 2019-04-24 11:20:40 +02:00
parent 93a882f8c5
commit da909907fd
2 changed files with 32 additions and 1 deletions

View File

@ -3,6 +3,7 @@
namespace Icinga\Module\Director\Forms;
use Icinga\Module\Director\Data\Db\DbObject;
use Icinga\Module\Director\Hook\IcingaObjectFormHook;
use Icinga\Module\Director\Web\Form\IcingaObjectFieldLoader;
use Icinga\Module\Director\Web\Form\DirectorObjectForm;
use Icinga\Module\Director\Web\Form\QuickForm;
@ -28,6 +29,11 @@ class IcingaMultiEditForm extends DirectorObjectForm
return $this;
}
public function isMultiObjectForm()
{
return true;
}
public function pickElementsFrom(QuickForm $form, $properties)
{
$this->relatedForm = $form;
@ -97,6 +103,7 @@ class IcingaMultiEditForm extends DirectorObjectForm
*/
protected function onRequest()
{
IcingaObjectFormHook::callOnSetup($this);
if ($this->hasBeenSent()) {
$this->handlePost();
}
@ -104,6 +111,7 @@ class IcingaMultiEditForm extends DirectorObjectForm
protected function handlePost()
{
$this->callOnRequestCallables();
if ($this->shouldBeDeleted()) {
$this->deleteObjects();
}
@ -278,9 +286,14 @@ class IcingaMultiEditForm extends DirectorObjectForm
return $this->db;
}
protected function getObjects($names)
public function getObjects($names = null)
{
if ($names === null) {
return $this->objects;
}
$res = array();
foreach ($names as $name) {
$res[$name] = $this->objects[$name];
}

View File

@ -688,6 +688,24 @@ abstract class DirectorObjectForm extends DirectorForm
return $this->object !== null;
}
public function isIcingaObject()
{
if ($this->object !== null) {
return $this->object instanceof IcingaObject;
}
/** @var DbObject $class */
$class = $this->getObjectClassname();
$instance = $class::create();
return $instance instanceof IcingaObject;
}
public function isMultiObjectForm()
{
return false;
}
public function setObject(DbObject $object)
{
$this->object = $object;