Files
Task-Management/views/layout_bottom.php
2026-03-27 00:14:49 +07:00

93 lines
4.3 KiB
PHP

</main>
</div>
<script>
// ── Dark Mode Toggle ──────────────────────────────────────────────────
const themeBtn = document.getElementById('theme-toggle');
const iconLight = document.getElementById('theme-icon-light');
const iconDark = document.getElementById('theme-icon-dark');
function updateThemeIcon() {
if(document.body.classList.contains('dark-mode')) {
iconLight.style.display = 'block';
iconDark.style.display = 'none';
} else {
iconLight.style.display = 'none';
iconDark.style.display = 'block';
}
}
if(themeBtn) {
updateThemeIcon();
themeBtn.addEventListener('click', () => {
document.body.classList.toggle('dark-mode');
const isDark = document.body.classList.contains('dark-mode');
localStorage.setItem('theme', isDark ? 'dark' : 'light');
updateThemeIcon();
});
}
// ── Toast ─────────────────────────────────────────────────────────────
function showToast(msg) {
const t = document.getElementById('toast');
t.textContent = msg;
t.classList.add('show');
setTimeout(() => t.classList.remove('show'), 3000);
}
// ── Sidebar Collapse ──────────────────────────────────────────────────
function toggleSidebar() {
const collapsed = document.body.classList.toggle('sidebar-collapsed');
localStorage.setItem('sidebar_collapsed', collapsed ? '1' : '0');
updateSidebarIcon();
}
function updateSidebarIcon() {
const icon = document.getElementById('sidebar-toggle-icon');
if(!icon) return;
if(document.body.classList.contains('sidebar-collapsed')) {
icon.className = 'fa fa-chevron-right';
} else {
icon.className = 'fa fa-chevron-left';
}
}
updateSidebarIcon();
// ── User Dropdown ─────────────────────────────────────────────────────
function toggleUserDropdown() {
const menu = document.getElementById('user-dropdown-menu');
menu.classList.toggle('open');
}
function closeUserDropdown() {
const menu = document.getElementById('user-dropdown-menu');
if(menu) menu.classList.remove('open');
}
document.addEventListener('click', (e) => {
const wrap = document.getElementById('user-dropdown-wrap');
if (wrap && !wrap.contains(e.target)) closeUserDropdown();
});
// ── Notifications ─────────────────────────────────────────────────────
function openNotifications() {
closeUserDropdown();
document.getElementById('notifications-modal').classList.add('active');
}
// ── Close modals on overlay click ─────────────────────────────────────
document.querySelectorAll('.modal-overlay').forEach(mo => {
mo.addEventListener('click', (e) => {
if (e.target === mo) mo.classList.remove('active');
});
});
// ── Auto open change-pw modal if error ────────────────────────────────
<?php
$pw_msg_bottom = $_SESSION['pw_change_msg_bottom'] ?? null;
if($pw_msg_bottom):
?>
document.addEventListener('DOMContentLoaded', () => {
document.getElementById('change-pw-modal').classList.add('active');
});
<?php endif; ?>
</script>
</body>
</html>