diff --git a/core/module/course/course.php b/core/module/course/course.php index 9b753fc..8688b27 100644 --- a/core/module/course/course.php +++ b/core/module/course/course.php @@ -646,7 +646,7 @@ class course extends common $userId, $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname']), - template::checkbox('courseUserSelect' . $userId , true, '') + template::checkbox('courseUserSelect' . $userId , true, '', ['class' => 'checkboxSelect']) ]; } @@ -699,7 +699,7 @@ class course extends common $userId, $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname']), - template::checkbox('courseUserSelect' . $userId , true, '') + template::checkbox('courseUserSelect' . $userId , true, '', ['class' => 'checkboxSelect']) ]; } diff --git a/core/module/course/view/usersAdd/usersAdd.js.php b/core/module/course/view/usersAdd/usersAdd.js.php index 19d67c5..95cd1f0 100644 --- a/core/module/course/view/usersAdd/usersAdd.js.php +++ b/core/module/course/view/usersAdd/usersAdd.js.php @@ -13,9 +13,11 @@ $(document).ready((function () { $("#courseFilterGroup, #courseFilterFirstName, #courseFilterLastName").change(function () { - $("#courseUsersAddForm").submit(); + saveCheckboxState(); + $("#courseUsersFilterForm").submit(); + }); - $('#dataTables').DataTable({ + var table = $('#dataTables').DataTable({ language: { url: "core/vendor/datatables/french.json" }, @@ -28,4 +30,36 @@ $(document).ready((function () { } ] }); + + // Handle checkbox state on DataTables draw event + table.on('draw', function () { + // Restore checkbox state from cookies or local storage + restoreCheckboxState(); + }); + + + // Function to save checkbox state + function saveCheckboxState() { + var checkboxState = []; + $('.checkboxSelect').each(function () { + checkboxState.push({ + 'rowIndex': $(this).closest('tr').index(), + 'checked': $(this).prop('checked') + }); + }); + // Use cookies or local storage to store checkbox state + localStorage.setItem('checkboxState', JSON.stringify(checkboxState)); + } + + // Function to restore checkbox state + function restoreCheckboxState() { + var checkboxState = JSON.parse(localStorage.getItem('checkboxState')) || []; + checkboxState.forEach(function (item) { + var rowIndex = item.rowIndex; + var checked = item.checked; + // Update checkbox state based on stored information + $('#example tbody tr:eq(' + rowIndex + ') .checkboxSelect').prop('checked', checked); + }); + } + })); \ No newline at end of file diff --git a/core/module/course/view/usersAdd/usersAdd.php b/core/module/course/view/usersAdd/usersAdd.php index 79dcd4e..a904f0d 100644 --- a/core/module/course/view/usersAdd/usersAdd.php +++ b/core/module/course/view/usersAdd/usersAdd.php @@ -1,4 +1,4 @@ - +