Pārlūkot izejas kodu

Enabled localized strings (not only enums, but other types... to be defined)

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@359 a333f486-631f-4898-b8df-5754b55c2be0
romainq 15 gadi atpakaļ
vecāks
revīzija
e8fbdec326

+ 3 - 58
application/cmdbabstract.class.inc.php

@@ -77,60 +77,6 @@ abstract class cmdbAbstractObject extends CMDBObject
 		return "<a href=\"{$sAbsoluteUrl}{$sPage}?operation=details&class=$sObjClass&id=$sObjKey&".$oAppContext->GetForLink()."\" title=\"$sHint\">$sLabel</a>";
 	}
 
-	public function GetDisplayValue($sAttCode)
-	{
-		$sDisplayValue = "";
-		$sStateAttCode = MetaModel::GetStateAttributeCode(get_class($this));
-		if ($sStateAttCode == $sAttCode)
-		{
-			$sDisplayValue = MetaModel::GetStateLabel(get_class($this), $this->Get($sAttCode));
-		}
-		else
-		{
-			$oAtt = MetaModel::GetAttributeDef(get_class($this), $sAttCode);
-			
-			if ($oAtt->IsExternalKey())
-			{
-				$sTargetClass = $oAtt->GetTargetClass();
-				if ($this->IsNew())
-				{
-					// The current object exists only in memory, don't try to query it in the DB !
-					// instead let's query for the object pointed by the external key, and get its name
-					$targetObjId = $this->Get($sAttCode);
-					$oTargetObj = MetaModel::GetObject($sTargetClass, $targetObjId, false); // false => not sure it exists
-					if (is_object($oTargetObj))
-					{
-						$sDisplayValue = $oTargetObj->GetName();
-					}					
-				}
-				else
-				{
-					// retrieve the "external fields" linked to this external key
-					foreach (MetaModel::GetExternalFields(get_class($this), $sAttCode) as $oExtField)
-					{
-						$aAvailableFields[$oExtField->GetExtAttCode()] = $oExtField->GetAsHTML($this->Get($oExtField->GetCode()));
-					}
-					// Use the "name" of the target class as the label of the hyperlink
-					// unless it's not available in the external fields...
-					$sExtClassNameAtt = MetaModel::GetNameAttributeCode($sTargetClass);
-					if (isset($aAvailableFields[$sExtClassNameAtt]))
-					{
-						$sDisplayValue = $aAvailableFields[$sExtClassNameAtt];
-					}
-					else
-					{
-						$sDisplayValue = implode(' / ', $aAvailableFields);
-					}
-				}
-			}
-			else
-			{
-				$sDisplayValue = $this->GetAsHTML($sAttCode);
-			}
-		}
-		return $sDisplayValue;
-	}
-
 	function DisplayBareHeader(WebPage $oPage)
 	{
 		// Standard Header with name, actions menu and history block
@@ -592,8 +538,7 @@ abstract class cmdbAbstractObject extends CMDBObject
 				}
 			}
 		}
-		$sHtml = '#'.$oSet->GetFilter()->ToOQL()."\n";
-		$sHtml .= implode($sSeparator, $aHeader)."\n";
+		$sHtml = implode($sSeparator, $aHeader)."\n";
 		$oSet->Seek(0);
 		while ($aObjects = $oSet->FetchAssoc())
 		{
@@ -973,7 +918,7 @@ abstract class cmdbAbstractObject extends CMDBObject
 					else
 					{
 						$sValue = $this->Get($sAttCode);
-						$sDisplayValue = $this->GetDisplayValue($sAttCode);
+						$sDisplayValue = $this->GetEditValue($sAttCode);
 						$aArgs = array('this' => $this);
 						$sHTMLValue = self::GetFormElementForField($oPage, get_class($this), $sAttCode, $oAttDef, $sValue, $sDisplayValue, '', '', $iFlags, $aArgs);
 					}
@@ -1032,7 +977,7 @@ abstract class cmdbAbstractObject extends CMDBObject
 			else if (!$oAttDef->IsExternalField())
 			{
 				$sValue = ($oObjectToClone == null) ? '' : $oObjectToClone->Get($sAttCode);
-				$sDisplayValue = ($oObjectToClone == null) ? '' : $oObjectToClone->GetDisplayValue($sAttCode);
+				$sDisplayValue = ($oObjectToClone == null) ? '' : $oObjectToClone->GetEditValue($sAttCode);
 				$iOptions = isset($aStates[$sTargetState]['attribute_list'][$sAttCode]) ? $aStates[$sTargetState]['attribute_list'][$sAttCode] : 0;
 				
 				$sHTMLValue = self::GetFormElementForField($oPage, $sClass, $sAttCode, $oAttDef, $sValue, $sDisplayValue, '', '', $iOptions, $aArgs);

+ 1 - 1
application/ui.linkswidget.class.inc.php

@@ -307,7 +307,7 @@ EOF;
 					else
 					{
 						$sValue = ""; //$this->Get($sAttCode);
-						$sDisplayValue = ""; //$this->GetDisplayValue($sAttCode);
+						$sDisplayValue = ""; //$this->GetEditValue($sAttCode);
 						$sSubId = $sId.'_'.$index;
 						$aAttrsMap[$sAttCode] = $sSubId;
 						$index++;

+ 11 - 0
core/attributedef.class.inc.php

@@ -210,6 +210,11 @@ abstract class AttributeDefinition
 	//abstract protected GetBasicFilterHTMLInput();
 	abstract public function GetBasicFilterSQLExpr($sOpCode, $value); 
 
+	public function GetEditValue($sValue)
+	{
+		return (string)$sValue;
+	}
+
 	public function GetAsHTML($sValue)
 	{
 		return Str::pure2html((string)$sValue);
@@ -840,6 +845,12 @@ class AttributeEnum extends AttributeString
 		return "<span title=\"\">".parent::GetAsHtml($sLabel)."</span>";
 	}
 
+	public function GetEditValue($sValue)
+	{
+		$sLabel = Dict::S('Class:'.$this->GetHostClass().'/Attribute:'.$this->GetCode().'/Value:'.$sValue, $sValue);
+		return $sLabel;
+	}
+
 	public function GetAllowedValues($aArgs = array(), $sBeginsWith = '')
 	{
 		$aRawValues = parent::GetAllowedValues($aArgs, $sBeginsWith);

+ 46 - 0
core/dbobject.class.php

@@ -382,6 +382,52 @@ abstract class DBObject
 		return $oAtt->GetAsHTML($this->Get($sAttCode));
 	}
 
+	public function GetEditValue($sAttCode)
+	{
+		$sClass = get_class($this);
+		$oAtt = MetaModel::GetAttributeDef($sClass, $sAttCode);
+
+		if ($oAtt->IsExternalKey())
+		{
+			$sTargetClass = $oAtt->GetTargetClass();
+			if ($this->IsNew())
+			{
+				// The current object exists only in memory, don't try to query it in the DB !
+				// instead let's query for the object pointed by the external key, and get its name
+				$targetObjId = $this->Get($sAttCode);
+				$oTargetObj = MetaModel::GetObject($sTargetClass, $targetObjId, false); // false => not sure it exists
+				if (is_object($oTargetObj))
+				{
+					$sEditValue = $oTargetObj->GetName();
+				}					
+			}
+			else
+			{
+				// retrieve the "external fields" linked to this external key
+				foreach (MetaModel::GetExternalFields(get_class($this), $sAttCode) as $oExtField)
+				{
+					$aAvailableFields[$oExtField->GetExtAttCode()] = $oExtField->GetAsHTML($this->Get($oExtField->GetCode()));
+				}
+				// Use the "name" of the target class as the label of the hyperlink
+				// unless it's not available in the external fields...
+				$sExtClassNameAtt = MetaModel::GetNameAttributeCode($sTargetClass);
+				if (isset($aAvailableFields[$sExtClassNameAtt]))
+				{
+					$sEditValue = $aAvailableFields[$sExtClassNameAtt];
+				}
+				else
+				{
+					$sEditValue = implode(' / ', $aAvailableFields);
+				}
+			}
+		}
+		else
+		{
+			$sEditValue = $oAtt->GetEditValue($this->Get($sAttCode));
+		}
+		return $sEditValue;
+	}
+
 	public function GetAsXML($sAttCode)
 	{
 		$oAtt = MetaModel::GetAttributeDef(get_class($this), $sAttCode);

+ 1 - 1
pages/UI.php

@@ -913,7 +913,7 @@ try
 							$aAttributesDef = MetaModel::ListAttributeDefs($sClass);
 							$oAttDef = $aAttributesDef[$sAttCode];
 							$aArgs = array('this' => $oObj);
-							$sHTMLValue = cmdbAbstractObject::GetFormElementForField($oP, $sClass, $sAttCode, $oAttDef, $oObj->Get($sAttCode), $oObj->GetDisplayValue($sAttCode), '', '', $iExpectCode, $aArgs);
+							$sHTMLValue = cmdbAbstractObject::GetFormElementForField($oP, $sClass, $sAttCode, $oAttDef, $oObj->Get($sAttCode), $oObj->GetEditValue($sAttCode), '', '', $iExpectCode, $aArgs);
 							$aDetails[] = array('label' => $oAttDef->GetLabel(), 'value' => $sHTMLValue);
 						}
 					}

+ 1 - 1
pages/ajax.render.php

@@ -89,7 +89,7 @@ switch($operation)
 	{
 		$sId = $oWizardHelper->GetIdForField($sAttCode);
 		$value = $oObj->Get($sAttCode);
-		$displayValue = $oObj->GetDisplayValue($sAttCode);
+		$displayValue = $oObj->GetEditValue($sAttCode);
 		$oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
 		$sHTMLValue = cmdbAbstractObject::GetFormElementForField($oPage, $sClass, $sAttCode, $oAttDef, $value, $displayValue, 'att_'.$sId, '', 0, array('this' => $oObj));