From 45e7bdaff7d481d10a99d9e84b3851b8be90d355 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 Signed-off-by: Paul Derscheid Signed-off-by: Katrin Fischer --- 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 64979297be..ca3e2444c4 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/checkouts.js +++ b/koha-tmpl/intranet-tmpl/prog/js/checkouts.js @@ -740,20 +740,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.5