From 5dc761932eb13659532f3ac701db34d9e427fac7 Mon Sep 17 00:00:00 2001 From: Ryan Sawyer <67876161+RyanSawyer6003@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:01:16 -0600 Subject: [PATCH] Update app.js Added fix for nested modals closing parent modals --- js/app.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/js/app.js b/js/app.js index edae3f18..7f2d7300 100644 --- a/js/app.js +++ b/js/app.js @@ -401,3 +401,33 @@ $(document).ready(function() { // Data Tables new DataTable('.dataTables'); }); + +/* + |--------------------------------------------------------------- + | Nested Modal Fix for Bootstrap/AdminLTE + | Prevents parent modals from closing when a child modal closes + |--------------------------------------------------------------- +*/ +$(document).on('show.bs.modal', '.modal', function () { + // How many modals are currently visible? + const visibleModals = $('.modal:visible').length; + + // Increase z-index for each new modal + const zIndex = 1040 + (10 * visibleModals); + $(this).css('z-index', zIndex); + + // Delay required because Bootstrap inserts backdrop asynchronously + setTimeout(() => { + $('.modal-backdrop').not('.modal-stack') + .css('z-index', zIndex - 1) + .addClass('modal-stack'); // mark backdrops so they aren't reset + }, 0); +}); + +// Restore modal-open class when closing a child modal +$(document).on('hidden.bs.modal', '.modal', function () { + if ($('.modal:visible').length > 0) { + // Ensure background scroll remains locked + $('body').addClass('modal-open'); + } +});