mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-23 10:38:45 +02:00
FIxed the processing of hierarchical ZLists to keep the display order when plain fields and fieldsets are mixed at the same level.
SVN:trunk[1037]
This commit is contained in:
@@ -303,13 +303,33 @@ abstract class cmdbAbstractObject extends CMDBObject
|
||||
{
|
||||
$oPage->add('<td style="vertical-align:top">');
|
||||
//$aDetails[$sTab][$sColIndex] = array();
|
||||
$sLabel = '';
|
||||
$sPreviousLabel = '';
|
||||
$aDetails[$sTab][$sColIndex] = array();
|
||||
foreach($aFieldsets as $sFieldsetName => $aFields)
|
||||
{
|
||||
$aDetails[$sTab][$sColIndex] = array();
|
||||
if (!empty($sFieldsetName))
|
||||
if (!empty($sFieldsetName) && ($sFieldsetName[0] != '_'))
|
||||
{
|
||||
$oPage->add('<fieldset>');
|
||||
$oPage->add('<legend>'.Dict::S($sFieldsetName).'</legend>');
|
||||
$sLabel = $sFieldsetName;
|
||||
}
|
||||
else
|
||||
{
|
||||
$sLabel = '';
|
||||
}
|
||||
if ($sLabel != $sPreviousLabel)
|
||||
{
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('<fieldset>');
|
||||
$oPage->add('<legend>'.Dict::S($sPreviousLabel).'</legend>');
|
||||
}
|
||||
$oPage->Details($aDetails[$sTab][$sColIndex]);
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('</fieldset>');
|
||||
}
|
||||
$aDetails[$sTab][$sColIndex] = array();
|
||||
$sPreviousLabel = $sLabel;
|
||||
}
|
||||
foreach($aFields as $sAttCode)
|
||||
{
|
||||
@@ -320,11 +340,16 @@ abstract class cmdbAbstractObject extends CMDBObject
|
||||
$aDetails[$sTab][$sColIndex][] = $val;
|
||||
}
|
||||
}
|
||||
$oPage->Details($aDetails[$sTab][$sColIndex]);
|
||||
if (!empty($sFieldsetName))
|
||||
{
|
||||
$oPage->add('</fieldset>');
|
||||
}
|
||||
}
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('<fieldset>');
|
||||
$oPage->add('<legend>'.Dict::S($sFieldsetName).'</legend>');
|
||||
}
|
||||
$oPage->Details($aDetails[$sTab][$sColIndex]);
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('</fieldset>');
|
||||
}
|
||||
$oPage->add('</td>');
|
||||
}
|
||||
@@ -1244,15 +1269,35 @@ EOF
|
||||
$oPage->add('<table style="vertical-align:top"><tr>');
|
||||
foreach($aCols as $sColIndex => $aFieldsets)
|
||||
{
|
||||
$sLabel = '';
|
||||
$sPreviousLabel = '';
|
||||
$aDetails[$sTab][$sColIndex] = array();
|
||||
$oPage->add('<td style="vertical-align:top">');
|
||||
//$aDetails[$sTab][$sColIndex] = array();
|
||||
foreach($aFieldsets as $sFieldsetName => $aFields)
|
||||
{
|
||||
$aDetails[$sTab][$sColIndex] = array();
|
||||
if (!empty($sFieldsetName))
|
||||
if (!empty($sFieldsetName) && ($sFieldsetName[0]!='_'))
|
||||
{
|
||||
$oPage->add('<fieldset>');
|
||||
$oPage->add('<legend>'.Dict::S($sFieldsetName).'</legend>');
|
||||
$sLabel = $sFieldsetName;
|
||||
}
|
||||
else
|
||||
{
|
||||
$sLabel = '';
|
||||
}
|
||||
if ($sLabel != $sPreviousLabel)
|
||||
{
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('<fieldset>');
|
||||
$oPage->add('<legend>'.Dict::S($sPreviousLabel).'</legend>');
|
||||
}
|
||||
$oPage->Details($aDetails[$sTab][$sColIndex]);
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('</fieldset>');
|
||||
}
|
||||
$aDetails[$sTab][$sColIndex] = array();
|
||||
$sPreviousLabel = $sLabel;
|
||||
}
|
||||
foreach($aFields as $sAttCode)
|
||||
{
|
||||
@@ -1308,11 +1353,16 @@ EOF
|
||||
$aDetails[$sTab][$sColIndex][] = $aVal;
|
||||
}
|
||||
}
|
||||
$oPage->Details($aDetails[$sTab][$sColIndex]);
|
||||
if (!empty($sFieldsetName))
|
||||
{
|
||||
$oPage->add('</fieldset>');
|
||||
}
|
||||
}
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('<fieldset>');
|
||||
$oPage->add('<legend>'.Dict::S($sPreviousLabel).'</legend>');
|
||||
}
|
||||
$oPage->Details($aDetails[$sTab][$sColIndex]);
|
||||
if (!empty($sPreviousLabel))
|
||||
{
|
||||
$oPage->add('</fieldset>');
|
||||
}
|
||||
$oPage->add('</td>');
|
||||
}
|
||||
@@ -1435,6 +1485,7 @@ EOF
|
||||
//echo "<pre>ZList: ";
|
||||
//print_r($aList);
|
||||
//echo "</pre>\n";
|
||||
$index = 0;
|
||||
foreach($aList as $sKey => $value)
|
||||
{
|
||||
if (is_array($value))
|
||||
@@ -1449,7 +1500,7 @@ EOF
|
||||
//echo "<p>Found a tab: $sName ($sKey)</p>\n";
|
||||
if(!isset($aDetails[$sName]))
|
||||
{
|
||||
$aDetails[$sName] = array('col1' => array('' => array()));
|
||||
$aDetails[$sName] = array('col1' => array());
|
||||
}
|
||||
$aDetails = self::ProcessZlist($value, $aDetails, $sName, 'col1', '');
|
||||
break;
|
||||
@@ -1468,7 +1519,7 @@ EOF
|
||||
//echo "<p>Found a column: $sName ($sKey)</p>\n";
|
||||
if(!isset($aDetails[$sCurrentTab][$sName]))
|
||||
{
|
||||
$aDetails[$sCurrentTab][$sName] = array('' => array());
|
||||
$aDetails[$sCurrentTab][$sName] = array();
|
||||
}
|
||||
$aDetails = self::ProcessZlist($value, $aDetails, $sCurrentTab, $sName, '');
|
||||
break;
|
||||
@@ -1478,8 +1529,16 @@ EOF
|
||||
else
|
||||
{
|
||||
//echo "<p>Scalar value: $value, in [$sCurrentTab][$sCurrentCol][$sCurrentSet][]</p>\n";
|
||||
$aDetails[$sCurrentTab][$sCurrentCol][$sCurrentSet][] = $value;
|
||||
if (empty($sCurrentSet))
|
||||
{
|
||||
$aDetails[$sCurrentTab][$sCurrentCol]['_'.$index][] = $value;
|
||||
}
|
||||
else
|
||||
{
|
||||
$aDetails[$sCurrentTab][$sCurrentCol][$sCurrentSet][] = $value;
|
||||
}
|
||||
}
|
||||
$index++;
|
||||
}
|
||||
return $aDetails;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user