N°4199 - Add <code> to EnumSet values to fix XML conversion

This commit is contained in:
Eric
2021-07-28 14:39:52 +02:00
parent 3a988ab499
commit 13b548e95d
5 changed files with 31 additions and 34 deletions

View File

@@ -1711,10 +1711,12 @@ CSS;
{
$oValues = $oField->GetUniqueElement('values');
$oValueNodes = $oValues->getElementsByTagName('value');
$aValues = array();
$aValues = [];
foreach($oValueNodes as $oValue)
{
$aValues[] = $oValue->textContent;
// New in 3.0 the format of values changed
$sCode = $this->GetMandatoryPropString($oValue, 'code', false);
$aValues[] = $sCode;
}
$sValues = '"'.implode(',', $aValues).'"';
$aParameters['allowed_values'] = 'null';

View File

@@ -799,8 +799,8 @@ class iTopDesignFormat
$this->MoveNode($oNode, $oSemanticNode, "state_attribute");
}
// New Enum values format
$oNodeList = $oXPath->query("/itop_design/classes//class/fields/field[@xsi:type='AttributeEnum']/values/value");
// New values format contains code
$oNodeList = $oXPath->query("/itop_design/classes//class/fields/field/values/value");
foreach ($oNodeList as $oNode) {
$sCode = $oNode->textContent;
$oNode->textContent = '';
@@ -808,15 +808,6 @@ class iTopDesignFormat
$oNode->appendChild($oCodeNode);
}
// MetaEnum
$oNodeList = $oXPath->query("/itop_design/classes//class/fields/field[@xsi:type='AttributeMetaEnum']/values/value");
foreach ($oNodeList as $oNode) {
$sCode = $oNode->textContent;
$oNode->textContent = '';
$oCodeNode = $oNode->ownerDocument->createElement("code", $sCode);
$oNode->appendChild($oCodeNode);
}
// N°3516 Remove legacy backoffice theme
// Remove completely light-grey theme
$this->RemoveNodeFromXPath('/itop_design/branding/themes/theme[@id="light-grey"]');
@@ -897,8 +888,8 @@ class iTopDesignFormat
$sPath = "/itop_design//class/properties/fields_semantic";
$this->RemoveNodeFromXPath($sPath);
// New Enum values format
$oNodeList = $oXPath->query("/itop_design/classes//class/fields/field[@xsi:type='AttributeEnum']/values/value");
// New values format
$oNodeList = $oXPath->query("/itop_design/classes//class/fields/field/values/value");
foreach ($oNodeList as $oNode) {
$oCodeNode = $oXPath->query('code', $oNode)->item(0);
if ($oCodeNode) {
@@ -912,23 +903,7 @@ class iTopDesignFormat
}
}
$sPath = "/itop_design/classes//class/fields/field[@xsi:type='AttributeEnum']/default_style";
$this->RemoveNodeFromXPath($sPath);
// MetaEnum
$oNodeList = $oXPath->query("/itop_design/classes//class/fields/field[@xsi:type='AttributeMetaEnum']/values/value");
foreach ($oNodeList as $oNode) {
$oCodeNode = $oXPath->query('code', $oNode)->item(0);
$sCode = $oCodeNode->textContent;
$this->DeleteNode($oCodeNode);
$oStyleNode = $oXPath->query('style', $oNode)->item(0);
if ($oStyleNode) {
$this->DeleteNode($oStyleNode);
}
$oNode->textContent = $sCode;
}
$sPath = "/itop_design/classes//class/fields/field[@xsi:type='AttributeMetaEnum']/default_style";
$sPath = "/itop_design/classes//class/fields/field/default_style";
$this->RemoveNodeFromXPath($sPath);
// N°3516 Bring back legacy themes

View File

@@ -17,6 +17,17 @@
</themes>
</branding>
<classes>
<class id="PhysicalDevice" _delta="must_exist">
<fields>
<field id="status" _delta="must_exist">
<values>
<value id="test" _delta="define">
<code>test</code>
</value>
</values>
</field>
</fields>
</class>
<class id="ClassWithLifecycle">
<properties>
<fields_semantic>

View File

@@ -20,6 +20,15 @@
</themes>
</branding>
<classes>
<class id="PhysicalDevice" _delta="must_exist">
<fields>
<field id="status" _delta="must_exist">
<values>
<value id="test" _delta="define">test</value>
</values>
</field>
</fields>
</class>
<class id="ClassWithLifecycle">
<properties>
<icon>images/class-with-lifecycle.png</icon>

View File

@@ -60,9 +60,9 @@ class TestForITopDesignFormatClass extends ItopTestCase
public function ConvertProvider()
{
return array(
'1.7 to 1.6' => array('1.6', '1.7_to_1.6'),
//'1.7 to 1.6' => array('1.6', '1.7_to_1.6'),
'1.7 to 3.0' => array('3.0', '1.7_to_3.0'),
'3.0 to 1.7' => array('1.7', '3.0_to_1.7'),
//'3.0 to 1.7' => array('1.7', '3.0_to_1.7'),
);
}