// ==================== Admin Panel Functions ==================== async function loadSettings() { try { const response = await fetch('/api/admin/settings'); if (response.status === 401) { window.location.href = '/login'; return; } if (response.status === 403) { showMessage('Admin access required', 'error'); return; } const data = await response.json(); // Update checkbox state document.getElementById('allow-registration').checked = data.allow_registration === 'true' || data.allow_registration === true; } catch (error) { console.error('Error loading settings:', error); showMessage('Error loading settings: ' + error.message, 'error'); } } async function toggleRegistration(checkbox) { try { const formData = new FormData(); formData.append('value', checkbox.checked ? 'true' : 'false'); const response = await fetch('/api/admin/settings/allow_registration', { method: 'PUT', body: formData }); if (response.status === 401) { window.location.href = '/login'; return; } if (response.status === 403) { showMessage('Admin access required', 'error'); return; } const data = await response.json(); if (data.status === 'success') { showMessage( checkbox.checked ? 'Registration enabled' : 'Registration disabled', 'success' ); } else { showMessage(data.message || 'Failed to update setting', 'error'); // Revert checkbox checkbox.checked = !checkbox.checked; } } catch (error) { showMessage('Error updating setting: ' + error.message, 'error'); // Revert checkbox checkbox.checked = !checkbox.checked; } } async function loadUsers() { try { const loadingEl = document.getElementById('users-loading'); const containerEl = document.getElementById('users-container'); loadingEl.classList.remove('hidden'); containerEl.classList.add('hidden'); const response = await fetch('/api/admin/users'); if (response.status === 401) { window.location.href = '/login'; return; } if (response.status === 403) { showMessage('Admin access required', 'error'); return; } const data = await response.json(); loadingEl.classList.add('hidden'); containerEl.classList.remove('hidden'); renderUsers(data.users || []); } catch (error) { console.error('Error loading users:', error); showMessage('Error loading users: ' + error.message, 'error'); document.getElementById('users-loading').classList.add('hidden'); } } function renderUsers(users) { const listEl = document.getElementById('users-list'); if (users.length === 0) { listEl.innerHTML = '