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

@@ -225,10 +225,12 @@ class AjaxRenderController
$iDrawNumber = utils::ReadParam('draw', 1);
$aSort = utils::ReadParam('order', [], false, 'array');
$bForceSort = false;
if (count($aSort) > 0) {
$iSortCol = $aSort[0]["column"];
$sSortOrder = $aSort[0]["dir"];
} else {
} else{
$bForceSort = true;
$iSortCol = 0;
$sSortOrder = "asc";
}
@@ -251,6 +253,15 @@ class AjaxRenderController
if (!isset($aColumns[$sAlias])) {
continue;
}
// It's better to use default class order than asc first column when none specified by the request
if($bForceSort && count(MetaModel::GetOrderByDefault($sClassName)) > 0){
$iSortCol = -1;
$aDefaultOrder = MetaModel::GetOrderByDefault($sClassName);
foreach ($aDefaultOrder as $sAttCode => $bOrder) {
$aOrderBy[$sAlias.'.'.$sAttCode] = $bOrder;
}
}
foreach ($aColumns[$sAlias] as $sAttCode => $aData) {
if ($aData['checked'] == 'true') {
$aColumns[$sAlias][$sAttCode]['checked'] = true;