From 647c5bacf8817c856d5430aecb2c1d5cc4588752 Mon Sep 17 00:00:00 2001 From: alistair3149 Date: Wed, 27 Nov 2024 04:59:08 -0500 Subject: [PATCH] Support showing all rows as a length option in DataTables By adding -1 to datatables-lengthMenu, all rows can be shown --- Resources.php | 1 + .../datatables/resources/ext.srf.formats.datatables.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/Resources.php b/Resources.php index 1d6a917d..2b2d8376 100644 --- a/Resources.php +++ b/Resources.php @@ -967,6 +967,7 @@ 'ext.srf.widgets' ], 'messages' => [ + 'allmessages-filter-all', 'srf-ui-datatables-label-conditions', 'srf-ui-datatables-label-parameters', 'srf-ui-datatables-label-filters', diff --git a/formats/datatables/resources/ext.srf.formats.datatables.js b/formats/datatables/resources/ext.srf.formats.datatables.js index a89332ad..f2facbdf 100644 --- a/formats/datatables/resources/ext.srf.formats.datatables.js +++ b/formats/datatables/resources/ext.srf.formats.datatables.js @@ -558,6 +558,14 @@ }); } + // Replace -1 in lengthMenu with 'all' label + var showAll = options.lengthMenu.indexOf( -1 ); + if ( showAll !== -1 ) { + var labels = options.lengthMenu.slice(); + labels[showAll] = mw.msg( 'allmessages-filter-all' ); // stealing MW core messages :D + options.lengthMenu = [ options.lengthMenu, labels ]; + } + var query = data.query.ask; var printouts = table.data("printouts"); var queryString = query.conditions;