Merge pull request #6018 from christianbeeznest/C1-22330

Session: Add dynamic sorting for users table by name and date - refs BT#22330
pull/6021/head
christianbeeznest 8 months ago committed by GitHub
commit 580b90ac6f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 24
      main/session/resume_session.php

@ -353,12 +353,32 @@ $userListToShow = Display::page_subheader(get_lang('UserList').$url);
$userList = SessionManager::get_users_by_session($sessionId);
if (!empty($userList)) {
$sessionId = isset($_GET['id_session']) ? (int) $_GET['id_session'] : null;
$sortColumn = isset($_GET['sort']) ? Security::remove_XSS($_GET['sort']) : 'registration_date';
$sortOrder = isset($_GET['order']) && Security::remove_XSS($_GET['order']) === 'ASC' ? SORT_ASC : SORT_DESC;
$allowedColumns = ['user', 'registration_date'];
if (!in_array($sortColumn, $allowedColumns, true)) {
$sortColumn = 'registration_date';
}
usort($userList, function ($a, $b) use ($sortColumn, $sortOrder) {
if ($sortColumn === 'user') {
$valueA = strtolower(api_get_user_info($a['user_id'])['complete_name_with_username']);
$valueB = strtolower(api_get_user_info($b['user_id'])['complete_name_with_username']);
} else {
$valueA = strtotime($a['registered_at']);
$valueB = strtotime($b['registered_at']);
}
return $sortOrder === SORT_ASC ? $valueA <=> $valueB : $valueB <=> $valueA;
});
$table = new HTML_Table(
['class' => 'table table-hover table-striped data_table', 'id' => 'session-user-list']
);
$table->setHeaderContents(0, 0, get_lang('User'));
$table->setHeaderContents(0, 0, '<a href="?id_session='.$sessionId.'&sort=user&order='.($sortColumn === 'user' && $sortOrder === SORT_ASC ? 'DESC' : 'ASC').'">'.get_lang('User').'</a>');
$table->setHeaderContents(0, 1, get_lang('Status'));
$table->setHeaderContents(0, 2, get_lang('RegistrationDate'));
$table->setHeaderContents(0, 2, '<a href="?id_session='.$sessionId.'&sort=registration_date&order='.($sortColumn === 'registration_date' && $sortOrder === SORT_ASC ? 'DESC' : 'ASC').'">'.get_lang('RegistrationDate').'</a>');
$table->setHeaderContents(0, 3, get_lang('Actions'));
$row = 1;

Loading…
Cancel
Save