Jelajahi Sumber

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)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4184 a333f486-631f-4898-b8df-5754b55c2be0
glajarige 9 tahun lalu
induk
melakukan
4276b5fbb0

+ 1 - 1
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))
 		{

+ 2 - 2
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);