Merge branch 'support/2.7' into develop

# Conflicts:
#	.jenkins/bin/tests/phpunit.sh
#	Jenkinsfile
#	core/config.class.inc.php
#	core/dbobjectsearch.class.php
#	core/ormlinkset.class.inc.php
#	datamodels/2.x/combodo-db-tools/dbtools.php
#	dictionaries/nl.dictionary.itop.ui.php
This commit is contained in:
Pierre Goiffon
2020-08-17 09:36:43 +02:00
59 changed files with 1497 additions and 931 deletions

View File

@@ -792,10 +792,11 @@ class DBObjectSearch extends DBSearch
* Helper to
* - convert a translation table (format optimized for the translation in an expression tree) into simple hash
* - compile over an eventually existing map
* - accept multiple translations for the same alias for unions
*
* @param array $aRealiasingMap Map to update
* @param array $aAliasTranslation Translation table resulting from calls to MergeWith_InNamespace
* @return void of <old-alias> => <new-alias>
* @return void of [old-alias][] => new-alias (@since 2.7.2)
*/
protected function UpdateRealiasingMap(&$aRealiasingMap, $aAliasTranslation)
{
@@ -803,17 +804,33 @@ class DBObjectSearch extends DBSearch
{
foreach ($aAliasTranslation as $sPrevAlias => $aRules)
{
if (isset($aRules['*']))
if (!isset($aRules['*']))
{
$sNewAlias = $aRules['*'];
$sOriginalAlias = array_search($sPrevAlias, $aRealiasingMap);
if ($sOriginalAlias !== false)
continue;
}
$sNewAlias = $aRules['*'];
$bOriginalFound = false;
$iIndex = 0;
foreach ($aRealiasingMap as $sOriginalAlias => $aAliases)
{
$iIndex = array_search($sPrevAlias, $aAliases);
if ($iIndex !== false)
{
$aRealiasingMap[$sOriginalAlias] = $sNewAlias;
$bOriginalFound = true;
break;
}
else
}
if ($bOriginalFound)
{
$aRealiasingMap[$sOriginalAlias][$iIndex] = $sNewAlias;
}
else
{
if (!isset($aRealiasingMap[$sPrevAlias]) || !in_array($sNewAlias, $aRealiasingMap[$sPrevAlias]))
{
$aRealiasingMap[$sPrevAlias] = $sNewAlias;
$aRealiasingMap[$sPrevAlias][] = $sNewAlias;
}
}
}
@@ -861,7 +878,7 @@ class DBObjectSearch extends DBSearch
/**
* Add a link to another filter, using an extkey already present in current filter
*
* @param DBObjectSearch $oFilter filter to join to
* @param DBObjectSearch $oFilter filter to join to (can be modified)
* @param string $sExtKeyAttCode extkey present in current filter, that allows to points to $oFilter
* @param int $iOperatorCode
* @param array $aRealiasingMap array of <old-alias> => <new-alias>, for each alias that has changed.
@@ -955,7 +972,7 @@ class DBObjectSearch extends DBSearch
}
/**
* @param DBObjectSearch $oFilter
* @param DBObjectSearch $oFilter (can be modified)
* @param $sForeignExtKeyAttCode
* @param int $iOperatorCode
* @param null $aRealiasingMap array of <old-alias> => <new-alias>, for each alias that has changed