MIF_E31222851/resources/views/admin/partials/sidebar-script.blade.php

114 lines
4.1 KiB
PHP

<script>
// Sidebar functionality
document.addEventListener('DOMContentLoaded', function() {
const sidebar = document.getElementById('sidebar');
const sidebarToggle = document.getElementById('sidebar-toggle');
const sidebarClose = document.getElementById('sidebar-close');
const sidebarOverlay = document.getElementById('sidebar-overlay');
// Toggle sidebar on mobile
if (sidebarToggle) {
sidebarToggle.addEventListener('click', function() {
sidebar.classList.remove('-translate-x-full');
sidebarOverlay.classList.remove('hidden');
});
}
// Close sidebar on mobile
if (sidebarClose) {
sidebarClose.addEventListener('click', function() {
sidebar.classList.add('-translate-x-full');
sidebarOverlay.classList.add('hidden');
});
}
// Close sidebar when clicking overlay
if (sidebarOverlay) {
sidebarOverlay.addEventListener('click', function() {
sidebar.classList.add('-translate-x-full');
sidebarOverlay.classList.add('hidden');
});
}
// Close sidebar on escape key
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') {
sidebar.classList.add('-translate-x-full');
sidebarOverlay.classList.add('hidden');
}
});
// Mobile menu dropdown functionality
const mobileMenuButton = document.getElementById('mobile-menu-button');
const mobileMenu = document.getElementById('mobile-menu');
if (mobileMenuButton && mobileMenu) {
mobileMenuButton.addEventListener('click', function(e) {
e.stopPropagation();
mobileMenu.classList.toggle('hidden');
});
// Close mobile menu when clicking outside
document.addEventListener('click', function(e) {
if (!mobileMenuButton.contains(e.target) && !mobileMenu.contains(e.target)) {
mobileMenu.classList.add('hidden');
}
});
// Close mobile menu on escape key
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') {
mobileMenu.classList.add('hidden');
}
});
}
});
// Logout confirmation
function confirmLogout() {
Swal.fire({
title: 'Konfirmasi Logout',
text: 'Apakah Anda yakin ingin keluar dari sistem?',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#d33',
cancelButtonColor: '#3085d6',
confirmButtonText: 'Ya, Keluar',
cancelButtonText: 'Batal',
customClass: {
popup: 'rounded-lg',
confirmButton: 'btn btn-danger px-4 py-2 rounded-md',
cancelButton: 'btn btn-secondary px-4 py-2 rounded-md'
}
}).then((result) => {
if (result.isConfirmed) {
// Show loading
Swal.fire({
title: 'Logging out...',
text: 'Mohon tunggu sebentar',
icon: 'info',
allowOutsideClick: false,
showConfirmButton: false,
willOpen: () => {
Swal.showLoading();
}
});
// Create and submit logout form
const form = document.createElement('form');
form.method = 'POST';
form.action = '{{ route('logout') }}';
const csrfToken = document.createElement('input');
csrfToken.type = 'hidden';
csrfToken.name = '_token';
csrfToken.value = '{{ csrf_token() }}';
form.appendChild(csrfToken);
document.body.appendChild(form);
form.submit();
}
});
}
</script>