// Fix for image button click not displaying popup modals $(document).ready(function() { // Ensure Bootstrap modal functionality if (typeof bootstrap !== 'undefined') { console.log('Bootstrap loaded successfully'); } else { console.error('Bootstrap not loaded - modals may not work'); } // Manual modal trigger for edit buttons $(document).on('click', '[data-bs-toggle="modal"]', function(e) { e.preventDefault(); const target = $(this).data('bs-target'); if (target) { const modal = new bootstrap.Modal(document.querySelector(target)); modal.show(); } }); // Alternative click handler for edit buttons $(document).on('click', '.btn-action[title="edit"]', function(e) { e.preventDefault(); e.stopPropagation(); const certificateId = $(this).attr('onclick').match(/\d+/)[0]; if (certificateId) { myFunction2(parseInt(certificateId)); // Ensure modal is shown setTimeout(() => { const modal = new bootstrap.Modal(document.getElementById('ModelData2')); modal.show(); }, 100); } }); // Fix for delete buttons $(document).on('click', '.btn-action[data-bs-toggle="tooltip"][title="Delete"]', function(e) { e.preventDefault(); e.stopPropagation(); const certificateId = $(this).attr('href').match(/\d+/)[0]; if (certificateId) { myFunction(parseInt(certificateId)); } }); // Ensure modals are properly initialized function initializeModals() { // Initialize all modals const modals = document.querySelectorAll('.modal'); modals.forEach(modal => { new bootstrap.Modal(modal); }); } // Call initialization after page load setTimeout(initializeModals, 500); // Re-initialize modals after AJAX content loads $(document).ajaxComplete(function() { setTimeout(initializeModals, 100); }); // Debug function to check modal status window.checkModalStatus = function() { console.log('Checking modal status...'); const modals = document.querySelectorAll('.modal'); modals.forEach((modal, index) => { console.log(`Modal ${index + 1}:`, { id: modal.id, visible: modal.classList.contains('show'), backdrop: modal.querySelector('.modal-backdrop') }); }); }; });