add crud sorting in the session

This commit is contained in:
Simon Vieille 2023-09-27 15:17:35 +02:00
parent 45b3f6bb80
commit f97f1dfedf
Signed by: deblan
GPG key ID: 579388D585F70417

View file

@ -395,9 +395,24 @@ abstract class CrudController extends AdminController
}
$defaultSort = $configuration->getDefaultSort($context);
$session = $request->getSession();
$name = $request->query->get('_sort', $defaultSort['label'] ?? null);
$direction = strtolower($request->query->get('_sort_direction', $defaultSort['direction'] ?? 'asc'));
$sessionId = sprintf('%s_%s_sort', $context, get_called_class());
$sessionSortName = sprintf('%s_label', $sessionId);
$sessionSortDirection = sprintf('%s_direction', $sessionId);
$name = strtolower($request->query->get(
'_sort',
$session->get($sessionSortName, $defaultSort['label'] ?? 'asc')
));
$direction = strtolower($request->query->get(
'_sort_direction',
$session->get($sessionSortDirection, $defaultSort['direction'] ?? 'asc')
));
$session->set($sessionSortName, $name);
$session->set($sessionSortDirection, $direction);
if (!in_array($direction, ['asc', 'desc'])) {
$direction = 'asc';