mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-19 00:28:47 +02:00
N°931: TagSetData table name
This commit is contained in:
@@ -6830,15 +6830,10 @@ class AttributeTagSet extends AttributeDBFieldVoid
|
||||
$aGoodTags[] = $sTagCode;
|
||||
if (count($aGoodTags) === $this->GetTagMaxNb())
|
||||
{
|
||||
// extra tags are ignored
|
||||
// extra and bad tags are ignored
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Ignore bad tags from database
|
||||
IssueLog::Warning("Unknown tag $sTagCode for $sClass::$sAttCode found in database, ignored.");
|
||||
}
|
||||
}
|
||||
$oTagSet->SetValue($aGoodTags);
|
||||
|
||||
@@ -7082,36 +7077,12 @@ class AttributeTagSet extends AttributeDBFieldVoid
|
||||
|
||||
$aAllowedTags = TagSetFieldData::GetAllowedValues(MetaModel::GetAttributeOrigin($this->GetHostClass(), $this->GetCode()), $this->GetCode());
|
||||
|
||||
if (!empty($aDelta['added']))
|
||||
{
|
||||
$aAdded = array();
|
||||
foreach($aDelta['added'] as $idx => $sTagCode)
|
||||
{
|
||||
$sTagLabel = $sTagCode;
|
||||
foreach($aAllowedTags as $oTag)
|
||||
{
|
||||
if ($sTagCode === $oTag->Get('tag_code'))
|
||||
{
|
||||
$sTagLabel = $oTag->Get('tag_label');
|
||||
}
|
||||
}
|
||||
$aAdded[] = $sTagLabel;
|
||||
}
|
||||
|
||||
$sAdded = $this->GenerateViewHtmlForValues($aAdded);
|
||||
$sResult .= Dict::Format('Change:LinkSet:Added', $sAdded);
|
||||
}
|
||||
|
||||
if (!empty($aDelta['removed']))
|
||||
{
|
||||
if (!empty($sAdded))
|
||||
{
|
||||
$sResult .= ', ';
|
||||
}
|
||||
|
||||
$aRemoved = array();
|
||||
foreach($aDelta['removed'] as $idx => $sTagCode)
|
||||
{
|
||||
if (empty($sTagCode)) {continue;}
|
||||
$sTagLabel = $sTagCode;
|
||||
foreach($aAllowedTags as $oTag)
|
||||
{
|
||||
@@ -7124,7 +7095,39 @@ class AttributeTagSet extends AttributeDBFieldVoid
|
||||
}
|
||||
|
||||
$sRemoved = $this->GenerateViewHtmlForValues($aRemoved);
|
||||
$sResult .= Dict::Format('Change:LinkSet:Removed', $sRemoved);
|
||||
if (!empty($sRemoved))
|
||||
{
|
||||
$sResult .= Dict::Format('Change:LinkSet:Removed', $sRemoved);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($aDelta['added']))
|
||||
{
|
||||
if (!empty($sRemoved))
|
||||
{
|
||||
$sResult .= ', ';
|
||||
}
|
||||
|
||||
$aAdded = array();
|
||||
foreach($aDelta['added'] as $idx => $sTagCode)
|
||||
{
|
||||
if (empty($sTagCode)) {continue;}
|
||||
$sTagLabel = $sTagCode;
|
||||
foreach($aAllowedTags as $oTag)
|
||||
{
|
||||
if ($sTagCode === $oTag->Get('tag_code'))
|
||||
{
|
||||
$sTagLabel = $oTag->Get('tag_label');
|
||||
}
|
||||
}
|
||||
$aAdded[] = $sTagLabel;
|
||||
}
|
||||
|
||||
$sAdded = $this->GenerateViewHtmlForValues($aAdded);
|
||||
if (!empty($sAdded))
|
||||
{
|
||||
$sResult .= Dict::Format('Change:LinkSet:Added', $sAdded);
|
||||
}
|
||||
}
|
||||
|
||||
return $sResult;
|
||||
@@ -7142,6 +7145,7 @@ class AttributeTagSet extends AttributeDBFieldVoid
|
||||
*/
|
||||
private function GenerateViewHtmlForValues($aValues, $sCssClass = 'attribute-tagset')
|
||||
{
|
||||
if (empty($aValues)) {return '';}
|
||||
$sHtml = '<span class="'.$sCssClass.'">';
|
||||
foreach($aValues as $oTag)
|
||||
{
|
||||
|
||||
@@ -7103,12 +7103,6 @@ abstract class MetaModel
|
||||
return $sRet;
|
||||
}
|
||||
|
||||
public static function GetTagDataClass($sClass, $sAttCode)
|
||||
{
|
||||
$sTagSuffix = $sClass.'_'.$sAttCode;
|
||||
return 'TagSetFieldDataFor_'.$sTagSuffix;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -595,7 +595,7 @@ final class ormTagSet
|
||||
|
||||
public function GetTagDataClass()
|
||||
{
|
||||
return MetaModel::GetTagDataClass($this->sClass, $this->sAttCode);
|
||||
return TagSetFieldData::GetTagDataClassName($this->sClass, $this->sAttCode);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -101,6 +101,13 @@ abstract class TagSetFieldData extends cmdbAbstractObject
|
||||
$this->_Set('tag_attcode', $aRes['tag_attcode']);
|
||||
}
|
||||
|
||||
public static function GetTagDataClassName($sClass, $sAttCode)
|
||||
{
|
||||
$sTagSuffix = $sClass.'__'.$sAttCode;
|
||||
|
||||
return 'TagSetFieldDataFor_'.$sTagSuffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract Tag class and attcode from the TagFieldData class name
|
||||
*
|
||||
@@ -113,7 +120,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject
|
||||
{
|
||||
$aRes = array();
|
||||
// Extract class and attcode from class name using pattern TagSetFieldDataFor_<class>_<attcode>>;
|
||||
if (preg_match('@^TagSetFieldDataFor_(?<class>\w+)_(?<attcode>\w+)$@', $sClassName, $aMatches))
|
||||
if (preg_match('@^TagSetFieldDataFor_(?<class>\w+)__(?<attcode>\w+)$@', $sClassName, $aMatches))
|
||||
{
|
||||
$aRes['tag_class'] = $aMatches['class'];
|
||||
$aRes['tag_attcode'] = $aMatches['attcode'];
|
||||
@@ -144,7 +151,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject
|
||||
$this->m_aDeleteIssues[] = Dict::S('Core:TagSetFieldData:ErrorDeleteUsedTag');
|
||||
}
|
||||
// Clear cache
|
||||
$sTagDataClass = MetaModel::GetTagDataClass($sClass, $sAttCode);
|
||||
$sTagDataClass = self::GetTagDataClassName($sClass, $sAttCode);
|
||||
unset(self::$m_aAllowedValues[$sTagDataClass]);
|
||||
}
|
||||
|
||||
@@ -199,7 +206,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject
|
||||
$this->m_aCheckIssues[] = Dict::S('Core:TagSetFieldData:ErrorDuplicateTagCodeOrLabel');
|
||||
}
|
||||
// Clear cache
|
||||
$sTagDataClass = MetaModel::GetTagDataClass($sClass, $sAttCode);
|
||||
$sTagDataClass = self::GetTagDataClassName($sClass, $sAttCode);
|
||||
unset(self::$m_aAllowedValues[$sTagDataClass]);
|
||||
|
||||
parent::DoCheckToWrite();
|
||||
@@ -275,7 +282,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject
|
||||
{
|
||||
try
|
||||
{
|
||||
$aTagFieldInfo = TagSetFieldData::ExtractTagFieldName($sClass);
|
||||
$aTagFieldInfo = self::ExtractTagFieldName($sClass);
|
||||
} catch (CoreException $e)
|
||||
{
|
||||
return $sClass;
|
||||
@@ -305,7 +312,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject
|
||||
public static function GetAllowedValues($sClass, $sAttCode)
|
||||
{
|
||||
$sClass = MetaModel::GetAttributeOrigin($sClass, $sAttCode);
|
||||
$sTagDataClass = MetaModel::GetTagDataClass($sClass, $sAttCode);
|
||||
$sTagDataClass = self::GetTagDataClassName($sClass, $sAttCode);
|
||||
if (!isset(self::$m_aAllowedValues[$sTagDataClass]))
|
||||
{
|
||||
$oSearch = new DBObjectSearch($sTagDataClass);
|
||||
|
||||
@@ -1855,8 +1855,7 @@ EOF;
|
||||
);
|
||||
foreach ($aTagFieldsInfo as $sTagFieldName)
|
||||
{
|
||||
$sTagSuffix = $sClassName.'_'.$sTagFieldName;
|
||||
$sTagClassName = 'TagSetFieldDataFor_'.$sTagSuffix;
|
||||
$sTagClassName = static::GetTagDataClassName($sClassName, $sTagFieldName);
|
||||
$sTagClassParams = var_export($aTagClassParams, true);
|
||||
$sPHP .= $this->GeneratePhpCodeForClass($sTagClassName, $sTagClassParentClass, $sTagClassParams);
|
||||
}
|
||||
@@ -1865,6 +1864,12 @@ EOF;
|
||||
return $sPHP;
|
||||
}
|
||||
|
||||
private static function GetTagDataClassName($sClass, $sAttCode)
|
||||
{
|
||||
$sTagSuffix = $sClass.'__'.$sAttCode;
|
||||
|
||||
return 'TagSetFieldDataFor_'.$sTagSuffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $oMenu
|
||||
|
||||
@@ -38,6 +38,7 @@ use lnkContactToFunctionalCI;
|
||||
use MetaModel;
|
||||
use Person;
|
||||
use Server;
|
||||
use TagSetFieldData;
|
||||
use Ticket;
|
||||
use URP_UserProfile;
|
||||
use VirtualHost;
|
||||
@@ -223,7 +224,7 @@ class ItopDataTestCase extends ItopTestCase
|
||||
*/
|
||||
protected function CreateTagData($sClass, $sAttCode, $sTagCode, $sTagLabel, $sTagDescription = '')
|
||||
{
|
||||
$sTagClass = MetaModel::GetTagDataClass($sClass, $sAttCode);
|
||||
$sTagClass = TagSetFieldData::GetTagDataClassName($sClass, $sAttCode);
|
||||
$oTagData = $this->createObject($sTagClass, array(
|
||||
'tag_code' => $sTagCode,
|
||||
'tag_label' => $sTagLabel,
|
||||
@@ -248,7 +249,7 @@ class ItopDataTestCase extends ItopTestCase
|
||||
*/
|
||||
protected function RemoveTagData($sClass, $sAttCode, $sTagCode)
|
||||
{
|
||||
$sTagClass = MetaModel::GetTagDataClass($sClass, $sAttCode);
|
||||
$sTagClass = TagSetFieldData::GetTagDataClassName($sClass, $sAttCode);
|
||||
$this->RemoveObjects($sTagClass, "SELECT $sTagClass WHERE tag_code = '$sTagCode'");
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ class TagSetFieldDataTest extends ItopDataTestCase
|
||||
*/
|
||||
public function testComputeValues()
|
||||
{
|
||||
$sTagClass = \MetaModel::GetTagDataClass(TAG_CLASS, TAG_ATTCODE);
|
||||
$sTagClass = TagSetFieldData::GetTagDataClassName(TAG_CLASS, TAG_ATTCODE);
|
||||
$oTagData = $this->createObject($sTagClass, array(
|
||||
'tag_code' => 'tag1',
|
||||
'tag_label' => 'First',
|
||||
|
||||
Reference in New Issue
Block a user