// Ajax Modal Load Script // /* Example Triggering --> */ $(document).on('click', '.ajax-modal', function (e) { e.preventDefault(); const $trigger = $(this); const modalUrl = $trigger.data('modal-url'); const modalSize = $trigger.data('modal-size') || 'md'; const modalId = 'ajaxModal_' + new Date().getTime(); // Show loading spinner while fetching content const loadingSpinner = ` `; $('.content-wrapper').append(loadingSpinner); // Make AJAX request $.ajax({ url: modalUrl, method: 'GET', dataType: 'json', success: function (response) { $('#modal-loading-spinner').remove(); if (response.error) { alert(response.error); return; } // Build modal wrapper const modalHtml = ` `; $('.content-wrapper').append(modalHtml); const $modal = $('#' + modalId); $modal.modal('show'); // Remove modal after it's closed $modal.on('hidden.bs.modal', function () { $(this).remove(); }); }, error: function (xhr, status, error) { $('#modal-loading-spinner').remove(); alert('Error loading modal content. Please try again.'); console.error('Modal AJAX Error:', status, error); } }); });