|
27 | 27 | // Advanced search form
|
28 | 28 | $form = new FormValidator('advancedSearch', 'get', '', '', [], FormValidator::LAYOUT_HORIZONTAL);
|
29 | 29 | $form->addElement('header', '', get_lang('AdvancedSearch'));
|
30 |
| -$form->addText('keywordUsername', get_lang('LoginName'), false); |
31 |
| -$form->addText('keywordEmail', get_lang('Email'), false); |
32 |
| -$form->addText('keywordFirstname', get_lang('FirstName'), false); |
33 |
| -$form->addText('keywordLastname', get_lang('LastName'), false); |
34 |
| -$form->addText('keywordOfficialCode', get_lang('OfficialCode'), false); |
| 30 | +$form->addText('keywordUsername', get_lang('LoginName'), false, ['value' => $_GET['keywordUsername'] ?? '']); |
| 31 | +$form->addText('keywordEmail', get_lang('Email'), false, ['value' => $_GET['keywordEmail'] ?? '']); |
| 32 | +$form->addText('keywordFirstname', get_lang('FirstName'), false, ['value' => $_GET['keywordFirstname'] ?? '']); |
| 33 | +$form->addText('keywordLastname', get_lang('LastName'), false, ['value' => $_GET['keywordLastname'] ?? '']); |
| 34 | +$form->addText('keywordOfficialCode', get_lang('OfficialCode'), false, ['value' => $_GET['keywordOfficialCode'] ?? '']); |
35 | 35 |
|
36 | 36 | $statusOptions = [
|
37 | 37 | '%' => get_lang('All'),
|
|
41 | 41 | SESSIONADMIN => get_lang('SessionsAdmin'),
|
42 | 42 | PLATFORM_ADMIN => get_lang('Administrator')
|
43 | 43 | ];
|
44 |
| -$form->addElement('select', 'keywordStatus', get_lang('Profile'), $statusOptions); |
| 44 | +$form->addElement('select', 'keywordStatus', get_lang('Profile'), $statusOptions, ['selected' => $_GET['keywordStatus'] ?? '%']); |
45 | 45 |
|
46 | 46 | $activeGroup = [];
|
47 |
| -$activeGroup[] = $form->createElement('checkbox', 'keywordActive', '', get_lang('Active')); |
48 |
| -$activeGroup[] = $form->createElement('checkbox', 'keywordInactive', '', get_lang('Inactive')); |
| 47 | +$activeGroup[] = $form->createElement('checkbox', 'keywordActive', '', get_lang('Active'), ['checked' => isset($_GET['keywordActive'])]); |
| 48 | +$activeGroup[] = $form->createElement('checkbox', 'keywordInactive', '', get_lang('Inactive'), ['checked' => isset($_GET['keywordInactive'])]); |
49 | 49 | $form->addGroup($activeGroup, '', get_lang('ActiveAccount'), null, false);
|
50 |
| -$form->addButtonSearch(get_lang('SearchUsers'), 'filter'); |
51 | 50 |
|
52 |
| -// Search filters |
53 |
| -$searchFilters = [ |
54 |
| - 'keywordFirstname' => $_GET['keywordFirstname'] ?? '', |
55 |
| - 'keywordLastname' => $_GET['keywordLastname'] ?? '', |
56 |
| - 'keywordUsername' => $_GET['keywordUsername'] ?? '', |
57 |
| - 'keywordEmail' => $_GET['keywordEmail'] ?? '', |
58 |
| - 'keywordOfficialCode' => $_GET['keywordOfficialCode'] ?? '', |
59 |
| - 'keywordStatus' => $_GET['keywordStatus'] ?? '', |
60 |
| - 'keywordActive' => $_GET['keywordActive'] ?? '', |
61 |
| - 'keywordInactive' => $_GET['keywordInactive'] ?? '', |
62 |
| -]; |
| 51 | +$parameters = array_map(function ($value) { |
| 52 | + return Security::remove_XSS($value); |
| 53 | +}, $_GET); |
| 54 | + |
| 55 | +$extraUserField = new ExtraField('user'); |
| 56 | +$returnParams = $extraUserField->addElements( |
| 57 | + $form, |
| 58 | + 0, |
| 59 | + [], |
| 60 | + true, |
| 61 | + false, |
| 62 | + [], |
| 63 | + [], |
| 64 | + $_REQUEST |
| 65 | +); |
| 66 | + |
| 67 | +$htmlHeadXtra[] = '<script> |
| 68 | + $(function () { |
| 69 | + '.$returnParams['jquery_ready_content'].' |
| 70 | + }) |
| 71 | +</script>'; |
| 72 | +$form->addButtonSearch(get_lang('SearchUsers'), 'filter'); |
63 | 73 |
|
64 | 74 | $users = [];
|
65 | 75 | if (isset($_GET['filter'])) {
|
66 |
| - $users = UserManager::searchUsers($searchFilters); |
| 76 | + $users = UserManager::searchUsers($parameters); |
67 | 77 | }
|
68 | 78 |
|
69 | 79 | $fieldSelector = '';
|
70 | 80 | $jqueryReadyContent = '';
|
71 |
| -$extraUserField = new ExtraField('user'); |
72 | 81 | if (!empty($users)) {
|
73 | 82 | $extraFields = $extraUserField->get_all(['filter = ?' => 1], 'option_order');
|
74 | 83 |
|
|
116 | 125 | }
|
117 | 126 | unset($user);
|
118 | 127 |
|
| 128 | + if (count($users) === 1) { |
| 129 | + array_unshift($users, ['id' => '', 'username' => '']); |
| 130 | + } |
| 131 | + $parameters = array_diff_key($parameters, array_flip(['users_direction', 'users_column'])); |
119 | 132 | $userTable = new SortableTable('users', null, null, 0, 50);
|
| 133 | + $userTable->set_additional_parameters($parameters); |
120 | 134 | $userTable->set_header(0, get_lang('ID'));
|
121 | 135 | $userTable->set_header(1, get_lang('Username'));
|
122 | 136 |
|
|
0 commit comments