From 7ebb0c40f37da786a1556f608502ad7ab745193c Mon Sep 17 00:00:00 2001 From: Guillaume Lajarige Date: Fri, 3 Jun 2016 14:51:37 +0000 Subject: [PATCH] Customer portal : Updated object form manager to check if an AttributeType has the necessary API to be used in a form (instead of the temporary array enumerating available types) SVN:trunk[4184] --- .../portal/src/controllers/objectcontroller.class.inc.php | 2 +- .../portal/src/forms/objectformmanager.class.inc.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php index d06a1d912..a1430d393 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/controllers/objectcontroller.class.inc.php @@ -266,7 +266,7 @@ class ObjectController extends AbstractController public function CreateFromFactoryAction(Request $oRequest, Application $oApp, $sObjectClass, $sObjectId, $sEncodedMethodName) { $sMethodName = base64_decode($sEncodedMethodName); - + // Checking that the factory method is valid if (!is_callable($sMethodName)) { diff --git a/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php index e999817a0..265196ccf 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/forms/objectformmanager.class.inc.php @@ -435,8 +435,8 @@ class ObjectFormManager extends FormManager { $oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sAttCode); - // TODO : Make AttributeDefinition::MakeFormField() for all kind of fields - if (in_array(get_class($oAttDef), array('AttributeString', 'AttributeEmailAddress', 'AttributeText', 'AttributeLongText', 'AttributeCaseLog', 'AttributeHTML', 'AttributeFriendlyName', 'AttributeEnum', 'AttributeExternalKey', 'AttributeExternalField', 'AttributeHierarchicalKey', 'AttributeCustomFields', 'AttributeLinkedSet', 'AttributeLinkedSetIndirect', 'AttributeDate', 'AttributeDateTime', 'AttributeDuration', 'AttributeSubItem'))) + // Failsafe for AttributeType that would not have MakeFormField and therefore could not be used in a form + if (is_callable(get_class($oAttDef) . '::MakeFormField')) { $oField = $oAttDef->MakeFormField($this->oObject);