From ee9aa7ad525bf47f4475985c84510d455b8ac6d4 Mon Sep 17 00:00:00 2001 From: Michael Hafen Date: Fri, 13 Aug 2021 15:52:52 -0600 Subject: [PATCH] Bug 28864: Have patron search use PatronsPerPage better. Content-Type: text/plain; charset="utf-8" Add pageLength to members/member.tt Add aLengthMenu and pageLength to patroncards/add_user_search (common/patron_search.tt). Add aLengthMenu, pageLength, and iDisplayLength to patroncards/edit-batch Test plan: 1. Set the PatronsPerPage system preference to any integer other than 20. 2. Go to the Patrons page and search for patrons. 3. Observe that the per page drop down defaults to 20. 4. Go to Tools -> Patron card creator. 5. Start a new Card Batch. 6. Click the 'Add patron(s)' button to open the patron search window. 7. Do a search. 8. Observe that the per page drop down defaults to 20. 8b. If the PatronsPerPage was set to a value other than 10, 20, 50, or 100 observe that that value is not in the per page drop down. 9. Close patron search window. 10. Apply patch. 11. Click the 'Add patron(s)' button again to open the patron search window. 12. Do a search. 13. Observe that the per page drop down includes the value of PatronsPerPage and that value is selected by default. 14. Go back to the Patrons page and search for patrons. 15. Observe that the per page drop down defaults to the value of the PatronsPerPage system preference. --- .../prog/en/modules/common/patron_search.tt | 19 ++++++++++- .../prog/en/modules/members/member.tt | 32 +++++++------------ .../prog/en/modules/patroncards/edit-batch.tt | 18 +++++++++++ 3 files changed, 48 insertions(+), 21 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt index 9009d7a187..757a03f987 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/common/patron_search.tt @@ -130,6 +130,21 @@ search = 0; [% END %] + // Prepare DataTables settings + var aLengthMenu = [10, 20, 50, 100, -1]; + var aLengthMenuLabel = [10, 20, 50, 100, _("All")]; + var patronsPerPage = [% Koha.Preference('PatronsPerPage') | html %]; + for ( var i = 0; i < aLengthMenu.length; i++ ) { + if ( aLengthMenu[i] == patronsPerPage ) { + break; + } + if ( aLengthMenu[i] > patronsPerPage || aLengthMenu[i] == -1 ) { + aLengthMenu.splice(i, 0, patronsPerPage); + aLengthMenuLabel.splice(i, 0, patronsPerPage); + break; + } + } + // Apply DataTables on the results table dtMemberResults = $("#memberresultst").dataTable($.extend(true, {}, dataTablesDefaults, { 'bServerSide': true, @@ -214,7 +229,9 @@ ], 'bAutoWidth': false, 'sPaginationType': 'full_numbers', - "iDisplayLength": [% Koha.Preference('PatronsPerPage') | html %], + 'aLengthMenu': [aLengthMenu, aLengthMenuLabel], + 'iDisplayLength': patronsPerPage, + 'pageLength': patronsPerPage, 'aaSorting': [[[% aaSorting || 0 | html %], 'asc']], 'bFilter': false, 'bProcessing': true, diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt index f3c14cc6fc..9693190a14 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member.tt @@ -363,28 +363,19 @@ [% END %] // Build the aLengthMenu - var aLengthMenu = [ - [% PatronsPerPage | html %], 10, 20, 50, 100, -1 - ]; - jQuery.unique(aLengthMenu); - aLengthMenu.sort(function( a, b ){ - // Put "All" at the end - if ( a == -1 ) { - return 1; - } else if ( b == -1 ) { - return -1; + var aLengthMenu = [10, 20, 50, 100, -1]; + var aLengthMenuLabel = [10, 20, 50, 100, _("All")]; + var patronsPerPage = [% PatronsPerPage | html %]; + for ( var i = 0; i < aLengthMenu.length; i++ ) { + if ( aLengthMenu[i] == patronsPerPage ) { + break; } - return parseInt(a) < parseInt(b) ? -1 : 1;} - ); - var aLengthMenuLabel = []; - $(aLengthMenu).each(function(){ - if ( this == -1 ) { - // Label for -1 is "All" - aLengthMenuLabel.push(_("All")); - } else { - aLengthMenuLabel.push(this); + if ( aLengthMenu[i] > patronsPerPage || aLengthMenu[i] == -1 ) { + aLengthMenu.splice(i, 0, patronsPerPage); + aLengthMenuLabel.splice(i, 0, patronsPerPage); + break; } - }); + } // Apply DataTables on the results table var columns_settings = [% TablesSettings.GetColumns( 'members', 'member', 'memberresultst', 'json' ) | $raw %]; @@ -491,6 +482,7 @@ "aLengthMenu": [aLengthMenu, aLengthMenuLabel], 'sPaginationType': 'full_numbers', "iDisplayLength": [% PatronsPerPage | html %], + "pageLength": [% PatronsPerPage | html %], "bProcessing": true, "initComplete": function(settings, json) { Sticky = $("#searchheader"); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt index 23a66e22c8..a665b74392 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-batch.tt @@ -245,6 +245,21 @@ }; $(document).ready(function() { + // Prepare DataTables settings + var aLengthMenu = [10, 20, 50, 100, -1]; + var aLengthMenuLabel = [10, 20, 50, 100, _("All")]; + var patronsPerPage = [% Koha.Preference('PatronsPerPage') | html %]; + for ( var i = 0; i < aLengthMenu.length; i++ ) { + if ( aLengthMenu[i] == patronsPerPage ) { + break; + } + if ( aLengthMenu[i] > patronsPerPage || aLengthMenu[i] == -1 ) { + aLengthMenu.splice(i, 0, patronsPerPage); + aLengthMenuLabel.splice(i, 0, patronsPerPage); + break; + } + } + [% IF table_loop %] $("#description").show(); [% ELSE %] @@ -256,6 +271,9 @@ ], "aaSorting": [[ 0, "asc" ]], "sPaginationType": "full", + "aLengthMenu": [aLengthMenu, aLengthMenuLabel], + "iDisplayLength": patronsPerPage, + "pageLength": patronsPerPage, "autoWidth": false })); $("#additems").click(function(){ -- 2.25.1