forked from UKSOURCE/cms.hailearning.edu.vn
Merge branch 'main' of https://gits.techvanguard.vn/UKSOURCE/cms.hailearning.edu.vn into fea/thanh-02022026-news
This commit is contained in:
@@ -117,7 +117,40 @@
|
||||
|
||||
<!-- Bootstrap JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script>
|
||||
// Global function to clean up any stuck modal backdrops
|
||||
function forceCleanupModals() {
|
||||
document.body.classList.remove('modal-open');
|
||||
document.body.style.overflow = '';
|
||||
document.body.style.paddingRight = '';
|
||||
const backdrops = document.querySelectorAll('.modal-backdrop, .overlay, .loading');
|
||||
if (backdrops.length > 0) {
|
||||
console.warn('Force removing stuck backdrops:', backdrops.length);
|
||||
backdrops.forEach(el => el.remove());
|
||||
}
|
||||
}
|
||||
|
||||
// Automatically clean up on every hide event
|
||||
document.addEventListener('hidden.bs.modal', function() {
|
||||
// Wait a tiny bit for the animation to finish
|
||||
setTimeout(forceCleanupModals, 100);
|
||||
});
|
||||
|
||||
// Watchdog: Check if backdrops exist without a visible modal every 2 seconds
|
||||
setInterval(() => {
|
||||
const visibleModals = document.querySelectorAll('.modal.show');
|
||||
if (visibleModals.length === 0) {
|
||||
const backdrops = document.querySelectorAll('.modal-backdrop');
|
||||
if (backdrops.length > 0) {
|
||||
forceCleanupModals();
|
||||
}
|
||||
}
|
||||
}, 2000);
|
||||
|
||||
// Clean up on page load
|
||||
window.addEventListener('load', forceCleanupModals);
|
||||
</script>
|
||||
<%- script %>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
|
||||
@@ -12,16 +12,18 @@
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
<!-- Font Awesome -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
|
||||
<!-- Custom CSS -->
|
||||
<style>
|
||||
:root {
|
||||
--primary-color: #0048b4;
|
||||
--primary-light: #003a8f;
|
||||
--primary-dark: #002a6f;
|
||||
--secondary-color: #f5f5e8;
|
||||
--text-light: #black;
|
||||
}
|
||||
<!-- Global CSS Variables -->
|
||||
<link rel="stylesheet" href="/assets/css/variables.css" />
|
||||
<!-- CMS Component System -->
|
||||
<link rel="stylesheet" href="/assets/css/components/button.css" />
|
||||
<link rel="stylesheet" href="/assets/css/components/card.css" />
|
||||
<link rel="stylesheet" href="/assets/css/components/form.css" />
|
||||
<link rel="stylesheet" href="/assets/css/components/modal.css" />
|
||||
<link rel="stylesheet" href="/assets/css/components/table.css" />
|
||||
<!-- Layout Styles -->
|
||||
<link rel="stylesheet" href="/assets/css/layout.css" />
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
||||
position: relative;
|
||||
@@ -861,16 +863,22 @@
|
||||
<!-- Bootstrap JS -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<!-- Axios for API calls -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
||||
|
||||
<!-- SortableJS for drag and drop -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script>
|
||||
|
||||
<!-- Toast JS -->
|
||||
<script src="/js/toast.js"></script>
|
||||
|
||||
<!-- Flash Handler JS -->
|
||||
<script src="/js/flash-handler.js"></script>
|
||||
|
||||
<!-- Custom JS -->
|
||||
<!-- Custom JS Utilities -->
|
||||
<script src="/js/main.js"></script>
|
||||
|
||||
<!-- Custom modal -->
|
||||
<!-- Custom modal enhancement -->
|
||||
<script src="/js/custom-modal.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
Reference in New Issue
Block a user