Преглед на файлове

Fixed regression on attribute labels; introduced in [1581]

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@1602 a333f486-631f-4898-b8df-5754b55c2be0
romainq преди 14 години
родител
ревизия
7870aabb52
променени са 1 файла, в които са добавени 60 реда и са изтрити 39 реда
  1. 60 39
      core/attributedef.class.inc.php

+ 60 - 39
core/attributedef.class.inc.php

@@ -180,12 +180,20 @@ abstract class AttributeDefinition
 	public function IsNullAllowed() {return true;} 
 	public function GetCode() {return $this->m_sCode;} 
 
-	public function GetLabel($sDefault = '')
+	public function GetLabel($sDefault = null)
 	{
+		// If no default value is specified, let's define the most relevant one for developping purposes
+		if (is_null($sDefault))
+		{
+			$sDefault = $this->m_sCode;
+		}
+
 		$sLabel = Dict::S('Class:'.$this->m_sHostClass.'/Attribute:'.$this->m_sCode, '');
 		if (strlen($sLabel) == 0)
 		{
-			$sLabel = $this->m_sCode;
+			// Nothing found: go higher in the hierarchy (if possible)
+			//
+			$sLabel = $sDefault;
 			$sParentClass = MetaModel::GetParentClass($this->m_sHostClass);
 			if ($sParentClass)
 			{
@@ -195,11 +203,6 @@ abstract class AttributeDefinition
 					$sLabel = $oAttDef->GetLabel($sDefault);
 				}
 			}
-			else
-			{
-				// Nothing defined in the class hierarchy: return the default value
-				$sLabel = $sDefault;
-			}
 		}
 		return $sLabel;
 	}
@@ -217,50 +220,56 @@ abstract class AttributeDefinition
 		}
 	}
 
-	public function GetDescription($sDefault = '')
+	public function GetDescription($sDefault = null)
 	{
-		$sDescription = Dict::S('Class:'.$this->m_sHostClass.'/Attribute:'.$this->m_sCode.'+', '');
-		if (strlen($sDescription) == 0)
+		// If no default value is specified, let's define the most relevant one for developping purposes
+		if (is_null($sDefault))
+		{
+			$sDefault = '';
+		}
+		$sLabel = Dict::S('Class:'.$this->m_sHostClass.'/Attribute:'.$this->m_sCode.'+', '');
+		if (strlen($sLabel) == 0)
 		{
+			// Nothing found: go higher in the hierarchy (if possible)
+			//
+			$sLabel = $sDefault;
 			$sParentClass = MetaModel::GetParentClass($this->m_sHostClass);
 			if ($sParentClass)
 			{
 				if (MetaModel::IsValidAttCode($sParentClass, $this->m_sCode))
 				{
 					$oAttDef = MetaModel::GetAttributeDef($sParentClass, $this->m_sCode);
-					$sDescription = $oAttDef->GetDescription($sDefault);
+					$sLabel = $oAttDef->GetDescription($sDefault);
 				}
 			}
-			else
-			{
-				// Nothing defined in the class hierarchy: return the default value
-				$sDescription = $sDefault;
-			}
 		}
-		return $sDescription;
+		return $sLabel;
 	} 
 
-	public function GetHelpOnEdition($sDefault = '')
+	public function GetHelpOnEdition($sDefault = null)
 	{
-		$sHelp = Dict::S('Class:'.$this->m_sHostClass.'/Attribute:'.$this->m_sCode.'?', '');
-		if (strlen($sHelp) == 0)
+		// If no default value is specified, let's define the most relevant one for developping purposes
+		if (is_null($sDefault))
 		{
+			$sDefault = '';
+		}
+		$sLabel = Dict::S('Class:'.$this->m_sHostClass.'/Attribute:'.$this->m_sCode.'?', '');
+		if (strlen($sLabel) == 0)
+		{
+			// Nothing found: go higher in the hierarchy (if possible)
+			//
+			$sLabel = $sDefault;
 			$sParentClass = MetaModel::GetParentClass($this->m_sHostClass);
 			if ($sParentClass)
 			{
 				if (MetaModel::IsValidAttCode($sParentClass, $this->m_sCode))
 				{
 					$oAttDef = MetaModel::GetAttributeDef($sParentClass, $this->m_sCode);
-					$sHelp = $oAttDef->GetHelpOnEdition($sDefault);
+					$sLabel = $oAttDef->GetHelpOnEdition($sDefault);
 				}
 			}
-			else
-			{
-				// Nothing defined in the class hierarchy: return the default value
-				$sHelp = $sDefault;
-			}
 		}
-		return $sHelp;
+		return $sLabel;
 	} 
 
 	public function GetHelpOnSmartSearch()
@@ -2729,23 +2738,35 @@ class AttributeExternalField extends AttributeDefinition
 		} 
 	}
 
-	public function GetLabel($sDefault = '')
+	public function GetLabel($sDefault = null)
 	{
-		$oRemoteAtt = $this->GetExtAttDef();
-		$sDefault = $oRemoteAtt->GetLabel();
-		return parent::GetLabel($sDefault);
+		$sLabel = parent::GetLabel('');
+		if (strlen($sLabel) == 0)
+		{
+			$oRemoteAtt = $this->GetExtAttDef();
+			$sLabel = $oRemoteAtt->GetLabel($this->m_sCode);
+		}
+		return $sLabel;
 	}
-	public function GetDescription($sDefault = '')
+	public function GetDescription($sDefault = null)
 	{
-		$oRemoteAtt = $this->GetExtAttDef();
-		$sDefault = $oRemoteAtt->GetDescription();
-		return parent::GetDescription($sDefault);
+		$sLabel = parent::GetDescription('');
+		if (strlen($sLabel) == 0)
+		{
+			$oRemoteAtt = $this->GetExtAttDef();
+			$sLabel = $oRemoteAtt->GetDescription('');
+		}
+		return $sLabel;
 	} 
-	public function GetHelpOnEdition($sDefault = '')
+	public function GetHelpOnEdition($sDefault = null)
 	{
-		$oRemoteAtt = $this->GetExtAttDef();
-		$sDefault = $oRemoteAtt->GetHelpOnEdition();
-		return parent::GetHelpOnEdition($sDefault);
+		$sLabel = parent::GetHelpOnEdition('');
+		if (strlen($sLabel) == 0)
+		{
+			$oRemoteAtt = $this->GetExtAttDef();
+			$sLabel = $oRemoteAtt->GetHelpOnEdition('');
+		}
+		return $sLabel;
 	} 
 
 	public function IsExternalKey($iType = EXTKEY_RELATIVE)