From e694c66f0ced888db865a4d5004f79240ff83380 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Tue, 30 May 2023 09:20:20 +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 https://bugs.koha-community.org/show_bug.cgi?id=30719 --- .../prog/en/includes/ill-list-table.inc | 4 +++ .../intranet-tmpl/prog/js/ill-list-table.js | 33 ++++++++++--------- 2 files changed, 21 insertions(+), 16 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..61ed8aaa45 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js +++ b/koha-tmpl/intranet-tmpl/prog/js/ill-list-table.js @@ -53,19 +53,17 @@ $(document).ready(function() { // At the moment, the only prefilter possible is borrowernumber // see ill/ill-requests.pl and members/ill-requests.pl - let additional_prefilters = []; + 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[prefilter_split[0]] = prefilter_split[1] + }); } + let borrower_prefilter = additional_prefilters['borrowernumber'] || null; + let additional_filters = { "me.backend": function(){ let backend = $("#illfilter_backend").val(); @@ -78,9 +76,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(); @@ -123,7 +119,7 @@ $(document).ready(function() { return filters; }, "me.placed": function(){ - if ( additional_prefilters.length != 0 && !additional_prefilters.find(e => e.key === 'placed')) return ""; + if ( Object.keys(additional_prefilters).length ) return ""; let placed_start = $('#illfilter_dateplaced_start').get(0)._flatpickr.selectedDates[0]; let placed_end = $('#illfilter_dateplaced_end').get(0)._flatpickr.selectedDates[0]; if (!placed_start && !placed_end) return ""; @@ -133,7 +129,7 @@ $(document).ready(function() { } }, "me.updated": function(){ - if ( additional_prefilters.length != 0 && !additional_prefilters.find(e => e.key === 'updated')) return ""; + if (Object.keys(additional_prefilters).length) return ""; let updated_start = $('#illfilter_datemodified_start').get(0)._flatpickr.selectedDates[0]; let updated_end = $('#illfilter_datemodified_end').get(0)._flatpickr.selectedDates[0]; if (!updated_start && !updated_end) return ""; @@ -178,7 +174,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' }, -- 2.30.2
Request ID