From 3247a97217b0e137b341a7cbe86c54e0899782de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sat, 1 Feb 2025 23:42:19 +0100 Subject: [PATCH] Removed "All" page length option for log tables, as this easily causes an out of memory situation on the server You can easily have thousands of log entries, making it impossible to view them all at once. This fixes #835 --- config/packages/datatables.yaml | 2 +- src/Controller/PartListsController.php | 6 +++++- src/DataTables/PartsDataTable.php | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/config/packages/datatables.yaml b/config/packages/datatables.yaml index 63d386ee..6076a6c7 100644 --- a/config/packages/datatables.yaml +++ b/config/packages/datatables.yaml @@ -8,7 +8,7 @@ datatables: # Set options, as documented at https://datatables.net/reference/option/ options: - lengthMenu : [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]] + lengthMenu : [[10, 25, 50, 100], [10, 25, 50, 100]] # We add the "All" option, when part tables are generated pageLength: '%partdb.table.default_page_size%' # Set to -1 to disable pagination (i.e. show all rows) by default dom: " <'row' <'col mb-2 input-group flex-nowrap' B l > <'col-auto mb-2' < p >>> <'card' diff --git a/src/Controller/PartListsController.php b/src/Controller/PartListsController.php index fde2805d..174fc95a 100644 --- a/src/Controller/PartListsController.php +++ b/src/Controller/PartListsController.php @@ -132,7 +132,11 @@ class PartListsController extends AbstractController $filterForm->handleRequest($formRequest); - $table = $this->dataTableFactory->createFromType(PartsDataTable::class, array_merge(['filter' => $filter], $additional_table_vars)) + $table = $this->dataTableFactory->createFromType( + PartsDataTable::class, + array_merge(['filter' => $filter], $additional_table_vars), + ['lengthMenu' => PartsDataTable::LENGTH_MENU] + ) ->handleRequest($request); if ($table->isCallback()) { diff --git a/src/DataTables/PartsDataTable.php b/src/DataTables/PartsDataTable.php index f62d9083..3163a38b 100644 --- a/src/DataTables/PartsDataTable.php +++ b/src/DataTables/PartsDataTable.php @@ -57,6 +57,8 @@ use Symfony\Contracts\Translation\TranslatorInterface; final class PartsDataTable implements DataTableTypeInterface { + const LENGTH_MENU = [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]]; + public function __construct( private readonly EntityURLGenerator $urlGenerator, private readonly TranslatorInterface $translator,