```javascript // Admin Dashboard JavaScript document.addEventListener('DOMContentLoaded', function() { // Sidebar toggle functionality const sidebarToggle = document.querySelector('.sidebar-toggle'); const sidebar = document.querySelector('.sidebar'); const mainContent = document.querySelector('.main-content'); if (sidebarToggle) { sidebarToggle.addEventListener('click', function() { sidebar.classList.toggle('sidebar-collapsed'); mainContent.classList.toggle('sidebar-collapsed'); }); } // Table row actions const editButtons = document.querySelectorAll('.btn-outline-primary'); const deleteButtons = document.querySelectorAll('.btn-outline-danger'); editButtons.forEach(button => { button.addEventListener('click', function() { const row = this.closest('tr'); const libraryName = row.cells[0].textContent; alert(`تعديل مكتبة: ${libraryName}`); // In a real application, this would open an edit modal/form }); }); deleteButtons.forEach(button => { button.addEventListener('click', function() { const row = this.closest('tr'); const libraryName = row.cells[0].textContent; if (confirm(`هل أنت متأكد من حذف ${libraryName}؟`)) { row.remove(); // In a real application, this would make an API call to delete the library updateSummaryCards(); } }); }); // Add Library Form Submission const addLibraryForm = document.querySelector('#addLibraryModal form'); const saveLibraryBtn = document.querySelector('#addLibraryModal .btn-primary'); if (saveLibraryBtn) { saveLibraryBtn.addEventListener('click', function() { const name = document.getElementById('libraryName').value; const location = document.getElementById('libraryLocation').value; const status = document.getElementById('libraryStatus').value; const description = document.getElementById('libraryDescription').value; if (!name || !location || !status) { alert('يرجى ملء جميع الحقول المطلوبة'); return; } // Add new row to table const tableBody = document.querySelector('.table tbody'); const newRow = document.createElement('tr'); const statusBadge = { 'active': 'bg-success', 'under-construction': 'bg-warning', 'planned': 'bg-info', 'digital': 'bg-primary' }[status] || 'bg-secondary'; const statusText = { 'active': 'نشط', 'under-construction': 'قيد الإنشاء', 'planned': 'مخطط', 'digital': 'رقمية' }[status] || status; newRow.innerHTML = ` ${name} ${location} ${statusText} ${new Date().toISOString().split('T')[0]} `; tableBody.appendChild(newRow); // Close modal and reset form const modal = bootstrap.Modal.getInstance(document.getElementById('addLibraryModal')); modal.hide(); addLibraryForm.reset(); // Update summary cards updateSummaryCards(); // Re-attach event listeners to new buttons attachRowEventListeners(); }); } function updateSummaryCards() { const libraryCount = document.querySelectorAll('.table tbody tr').length; const libraryCard = document.querySelector('.summary-card:first-child .card-number'); if (libraryCard) { libraryCard.textContent = libraryCount; } } function attachRowEventListeners() { // Re-attach event listeners to all edit and delete buttons document.querySelectorAll('.btn-outline-primary').forEach(button => { button.addEventListener('click', function() { const row = this.closest('tr'); const libraryName = row.cells[0].textContent; alert(`تعديل مكتبة: ${libraryName}`); }); }); document.querySelectorAll('.btn-outline-danger').forEach(button => { button.addEventListener('click', function() { const row = this.closest('tr'); const libraryName = row.cells[0].textContent; if (confirm(`هل أنت متأكد من حذف ${libraryName}؟`)) { row.remove(); updateSummaryCards(); } }); }); } // Login form handling const loginForm = document.querySelector('.admin-login form'); if (loginForm) { loginForm.addEventListener('submit', function(e) { e.preventDefault(); const username = document.getElementById('username').value; const password = document.getElementById('password').value; // Simple validation (in real app, this would be an API call) if (username && password) { // Simulate login success window.location.href = 'dashboard.html'; } else { alert('يرجى إدخال اسم المستخدم وكلمة المرور'); } }); } // Initialize tooltips const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); const tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl); }); }); ```