N°4048 Fix default sorting on lists when using custom list settings without sort order

This commit is contained in:
Stephen Abello
2021-06-11 10:48:06 +02:00
parent bcfdf76b71
commit be03f3c6de
2 changed files with 21 additions and 4 deletions

View File

@@ -288,6 +288,8 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
if (count($oCustomSettings->aColumns) == 0)
{
$oCustomSettings->aColumns = $oDefaultSettings->aColumns;
}
if(count($oCustomSettings->GetSortOrder()) == 0){
$oCustomSettings->aSortOrder = $oDefaultSettings->aSortOrder;
}
@@ -295,8 +297,12 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
$aColumnsToLoad = array();
foreach ($oCustomSettings->aColumns as $sAlias => $aColumnsInfo) {
foreach ($aColumnsInfo as $sAttCode => $aData) {
$bForceLoad = false;
if ($aData['sort'] != 'none' || isset($oCustomSettings->aSortOrder[$sAttCode])) {
$bForceLoad = true;
}
if ($sAttCode != '_key_') {
if ($aData['checked']) {
if ($aData['checked'] || $bForceLoad) {
$aColumnsToLoad[$sAlias][] = $sAttCode;
} else {
// See if this column is a must to load
@@ -321,11 +327,11 @@ class DataTableUIBlockFactory extends AbstractUIBlockFactory
foreach ($oCustomSettings->aColumns[$sClassAlias] as $sAttCode => $aData) {
$sCode = ($aData['code'] == '_key_') ? 'friendlyname' : $aData['code'];
if ($aData['sort'] != 'none') {
$aSortOrder[$sAlias.$sCode] = ($aData['sort'] == 'asc'); // true for ascending, false for descending
$aSortOrder[$sAlias.'.'.$sCode] = ($aData['sort'] == 'asc'); // true for ascending, false for descending
$aSortDatable=[$iIndexColumn,$aData['sort']];
}
elseif (isset($oCustomSettings->aSortOrder[$sAttCode])){
$aSortOrder[$sAlias.$sCode] = $oCustomSettings->aSortOrder[$sAttCode]; // true for ascending, false for descending
$aSortOrder[$sAlias.'.'.$sCode] = $oCustomSettings->aSortOrder[$sAttCode]; // true for ascending, false for descending
}
if ($aData['checked']) {