From af2b3f568fb5c7c7a7bbee82e92eb2149d723366 Mon Sep 17 00:00:00 2001 From: Emmi Takkinen Date: Tue, 30 Jul 2024 15:43:08 +0300 Subject: [PATCH] Bug 37524: Do not attempt to renew check outs if there is nothing to renew If patrons loans are not renewable and one hits "Renew all" button in patrons "Check out" page, Koha is redirected to "Export data" tool. This happens because when there is nothing to renew call to function renew_all produces error: "Uncaught TypeError: renew_all(...) is undefined". This patch prevents call to this function and adds alert to inform user that there are no items to be renewed. To reproduce: 1. Find patron with check outs which renewals count has hit the maximum limit of renewals. 2. Press "Renew all" button. => Koha is redirected to "Export data" tool. 3. Apply this patch. 4. Try to renew check outs again. => Alert pop up is displayed. Sponsored-by: Koha-Suomi Oy Signed-off-by: Roman Dolny --- koha-tmpl/intranet-tmpl/prog/js/checkouts.js | 29 ++++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js index a2b540e971..befc2a4118 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js +++ b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js @@ -738,20 +738,25 @@ $(document).ready(function() { let item_ids = $(".renew:checked:visible").map((i, c) => c.value); - renew_all(item_ids, renew).then(() => { - // Refocus on barcode field if it exists - if ( $("#barcode").length ) { - $("#barcode").focus(); - } + if( item_ids.length > 0 ){ + renew_all(item_ids, renew).then(() => { + // Refocus on barcode field if it exists + if ( $("#barcode").length ) { + $("#barcode").focus(); + } - if ( refresh_table ) { - RefreshIssuesTable(); - } - $('#RenewChecked, #CheckinChecked').prop('disabled' , true ); - }); + if ( refresh_table ) { + RefreshIssuesTable(); + } + $('#RenewChecked, #CheckinChecked').prop('disabled' , true ); + }); + + // Prevent form submit + return false; + } else { + alert(_("There are no items to be renewed.")); + } - // Prevent form submit - return false; }); $("#RenewAll").on("click",function(){ -- 2.39.2