N°931: TagSetData table name

This commit is contained in:
Eric
2018-09-19 16:07:10 +02:00
parent 055d2cc62c
commit 0252d091ca
7 changed files with 60 additions and 49 deletions

View File

@@ -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)
{

View File

@@ -7103,12 +7103,6 @@ abstract class MetaModel
return $sRet;
}
public static function GetTagDataClass($sClass, $sAttCode)
{
$sTagSuffix = $sClass.'_'.$sAttCode;
return 'TagSetFieldDataFor_'.$sTagSuffix;
}
}

View File

@@ -595,7 +595,7 @@ final class ormTagSet
public function GetTagDataClass()
{
return MetaModel::GetTagDataClass($this->sClass, $this->sAttCode);
return TagSetFieldData::GetTagDataClassName($this->sClass, $this->sAttCode);
}
}

View File

@@ -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);

View File

@@ -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

View File

@@ -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'");
}

View File

@@ -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',