From 7a6bae9430b179f50e0889d227d7f81b6dfb29fb Mon Sep 17 00:00:00 2001 From: Thomas Gelf Date: Thu, 4 Feb 2016 16:51:53 +0100 Subject: [PATCH] DirectorObjectForm: improve getSentOrObjectValue() --- .../Director/Web/Form/DirectorObjectForm.php | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/library/Director/Web/Form/DirectorObjectForm.php b/library/Director/Web/Form/DirectorObjectForm.php index b0f0089f..bb0a50d0 100644 --- a/library/Director/Web/Form/DirectorObjectForm.php +++ b/library/Director/Web/Form/DirectorObjectForm.php @@ -708,15 +708,23 @@ abstract class DirectorObjectForm extends QuickForm public function getSentOrObjectValue($name, $default = null) { + // TODO: check whether getSentValue is still needed since element->getValue + // is in place (currently for form element default values only) + if ($this->hasObject()) { $value = $this->getSentValue($name); if ($value === null) { + $object = $this->getObject(); - if ($object->hasProperty($name)) { + if ($object->hasProperty($name) && $object->$name !== null) { return $object->$name; } + if (null !== ($val = $this->getElement('object_type')->getValue())) { + return $val; + } + return $default; } else { @@ -724,7 +732,15 @@ abstract class DirectorObjectForm extends QuickForm } } else { - return $this->getSentValue($name, $default); + if (null !== ($val = $this->getSentValue($name))) { + return $val; + } + + if (null !== ($val = $this->getElement('object_type')->getValue())) { + return $val; + } + + return $default; } }