diff --git a/app/views/foodcourt/qrpay/init.html.erb b/app/views/foodcourt/qrpay/init.html.erb index 80fccb79..4b89ef04 100644 --- a/app/views/foodcourt/qrpay/init.html.erb +++ b/app/views/foodcourt/qrpay/init.html.erb @@ -441,36 +441,58 @@ $(document).ready(function() { } $('#cancel-btn').on('click', function(e) { - document.getElementById('fullpage-loading').style.display = 'flex'; + e.preventDefault(); // Prevent any default button action - setTimeout(function() { - document.getElementById('fullpage-loading').style.display = 'none'; - }, 5000); - const postData = { - sale_id: "<%= @sale_data.sale_id %>" - }; + swal({ + title: "Are you sure?", + text: "Do you really want to cancel this transaction?", + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: "Yes, cancel it!", + cancelButtonText: "No, keep it.", + closeOnConfirm: false, + showLoaderOnConfirm: true, + }, + function(isConfirm){ + if (isConfirm) { + // User clicked "Yes", so we proceed with the cancellation. + const postData = { + sale_id: "<%= @sale_data.sale_id %>" + }; - $.ajax({ - url: '/foodcourt/qrpay/cancel', - method: 'POST', - contentType: 'application/json', - headers: { - 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') - }, - data: JSON.stringify(postData), - success: function(data) { - if (data.status) { - customer_display_view(null, "reload"); - } - }, - error: function(xhr, status, error) { - console.log("Error:", error); + $.ajax({ + url: '/foodcourt/qrpay/cancel', + method: 'POST', + contentType: 'application/json', + headers: { + 'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') + }, + data: JSON.stringify(postData), + success: function(data) { + if (data.status) { + swal({ + title: "Cancelled!", + text: "The transaction has been successfully cancelled. You will be redirected shortly.", + type: "success", + timer: 2000, // The alert will close automatically after 2 seconds + showConfirmButton: false + }); + setTimeout(function() { + window.location.href = "/"; + }, 1500); // 1.5-second delay before redirecting + + } else { + swal("Error", "Could not cancel the transaction. Please try again.", "error"); + } + }, + error: function(xhr, status, error) { + console.log("Error:", error); + swal("AJAX Error", "An unexpected error occurred. Please check the console.", "error"); + } + }); } }); - - setTimeout(() => { - window.location.href = "/"; - }, 1500); }); });