62 lines
2.1 KiB
JavaScript
62 lines
2.1 KiB
JavaScript
// Dashboard JavaScript
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const sidebar = document.getElementById('sidebar');
|
|
const mainContent = document.getElementById('mainContent');
|
|
const sidebarToggle = document.getElementById('sidebarToggle');
|
|
const sidebarOverlay = document.getElementById('sidebarOverlay');
|
|
|
|
// Toggle sidebar
|
|
sidebarToggle.addEventListener('click', function() {
|
|
sidebar.classList.toggle('active');
|
|
sidebarOverlay.classList.toggle('active');
|
|
});
|
|
|
|
// Close sidebar when clicking overlay
|
|
sidebarOverlay.addEventListener('click', function() {
|
|
sidebar.classList.remove('active');
|
|
sidebarOverlay.classList.remove('active');
|
|
});
|
|
|
|
// Close sidebar when clicking nav links (mobile only)
|
|
const navLinks = document.querySelectorAll('.sidebar .nav-link');
|
|
navLinks.forEach(link => {
|
|
link.addEventListener('click', function() {
|
|
if (window.innerWidth < 768) {
|
|
sidebar.classList.remove('active');
|
|
sidebarOverlay.classList.remove('active');
|
|
}
|
|
});
|
|
});
|
|
|
|
// Handle window resize
|
|
window.addEventListener('resize', function() {
|
|
if (window.innerWidth >= 768) {
|
|
sidebar.classList.remove('active');
|
|
sidebarOverlay.classList.remove('active');
|
|
}
|
|
});
|
|
|
|
// Add smooth scrolling for internal links
|
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
|
anchor.addEventListener('click', function (e) {
|
|
e.preventDefault();
|
|
const target = document.querySelector(this.getAttribute('href'));
|
|
if (target) {
|
|
target.scrollIntoView({
|
|
behavior: 'smooth'
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
// Auto-hide alerts after 5 seconds
|
|
const alerts = document.querySelectorAll('.alert');
|
|
alerts.forEach(alert => {
|
|
setTimeout(() => {
|
|
alert.style.opacity = '0';
|
|
setTimeout(() => {
|
|
alert.remove();
|
|
}, 300);
|
|
}, 5000);
|
|
});
|
|
}); |