From f3f7804b44f9d1a28d737a375db2d3a192596ff1 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Mon, 29 May 2023 11:15:33 +0000 Subject: [PATCH] Bug 33786: ILL requests table id Make sure requests table is unique when visiting patron ILL history so the table state is not shared unintentionally Reproduce: 1) Have a borrower with >20 ILL requests in their history 2) Visit cgi-bin/koha/members/ill-requests.pl?borrowernumber= 3) On the table, click page 2 4) Visit a different borrower with <20 ILL requests 5) Verify that no requests are shown, this is because the table is using page 2 from step 3) 6) Go back to original borrower, click table page 1 7) Now go back to 2nd borrower, verify is now showing page 1 correctly Signed-off-by: Katrin Fischer --- .../prog/en/includes/ill-list-table.inc | 4 +++ .../intranet-tmpl/prog/js/ill-list-table.js | 35 ++++++++++++------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc index c0d75cc27b..910f3a4f2a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/ill-list-table.inc @@ -1,4 +1,8 @@ +[% IF patron.borrowernumber %] + +[% ELSE %]
+[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js b/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js index 8a358015ac..849fd8f870 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js +++ b/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js @@ -55,17 +55,18 @@ $(document).ready(function() { // see ill/ill-requests.pl and members/ill-requests.pl let additional_prefilters = []; if(prefilters){ - let prefilters_array = prefilters.split("&"); - prefilters_array.forEach((prefilter) => { - let prefilter_split = prefilter.split("="); - additional_prefilters.push( { - "key": prefilter_split[0], - "value": prefilter_split[1] - } ); - - }); + let prefilters_array = prefilters.split("&"); + prefilters_array.forEach((prefilter) => { + let prefilter_split = prefilter.split("="); + additional_prefilters.push( { + "key": prefilter_split[0], + "value": prefilter_split[1] + } ); + }); } + let borrower_prefilter = get_prefilter_value('borrowernumber'); + let additional_filters = { "me.backend": function(){ let backend = $("#illfilter_backend").val(); @@ -78,9 +79,7 @@ $(document).ready(function() { return { "=": branchcode } }, "me.borrowernumber": function(){ - let borrowernumber_pre_filter = additional_prefilters.find(e => e.key === 'borrowernumber'); - if ( additional_prefilters.length == 0 || typeof borrowernumber_pre_filter === undefined) return ""; - return { "=": borrowernumber_pre_filter["value"] } + return borrower_prefilter ? { "=": borrower_prefilter } : ""; }, "-or": function(){ let patron = $("#illfilter_patron").val(); @@ -178,7 +177,12 @@ $(document).ready(function() { } }; - var ill_requests_table = $("#ill-requests").kohaTable({ + let table_id = "#ill-requests"; + if (borrower_prefilter) { + table_id += "-patron-" + borrower_prefilter; + } + + var ill_requests_table = $(table_id).kohaTable({ "ajax": { "url": '/api/v1/ill/requests' }, @@ -494,4 +498,9 @@ $(document).ready(function() { clearSearch(); }); + function get_prefilter_value(prefilter_key) { + let pre_filter = additional_prefilters.find(e => e.key === prefilter_key); + return additional_prefilters.length != 0 && typeof pre_filter !== "undefined" ? pre_filter['value'] : null; + } + }); -- 2.30.2
Request ID