⚠️ You must log in first to be able to add students.

Add New Student ➕

getItem('token')) { loginWarning.style.display = 'block'; submitBtn.disabled = true; submitBtn.title = 'Please log in first'; } form.onsubmit = async (e) => { e.preventDefault(); const data = { name: document.getElementById('name').value, class: document.getElementById('class').value, maxScans: parseInt(document.getElementById('maxScans').value) }; submitBtn.disabled = true; submitBtn.innerText = 'Saving...'; messageBox.style.display = 'none'; try { const response = await fetch('/students', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + (localStorage.getItem('token') || '') }, body: JSON.stringify(data) }); if (response.ok) { const result = await response.json(); messageBox.innerHTML = `✅ Saved successfully!
QR Code: ${result.defaultToken}`; messageBox.className = 'message success'; messageBox.style.display = 'block'; form.reset(); } else if (response.status === 401) { messageBox.innerText = '⚠️ Error: You must log in first.'; messageBox.className = 'message error'; messageBox.style.display = 'block'; } else { messageBox.innerText = '❌ Failed to save data. Try again.'; messageBox.className = 'message error'; messageBox.style.display = 'block'; } } catch (error) { messageBox.innerText = '❌ Server connection failed.'; messageBox.className = 'message error'; messageBox.style.display = 'block'; } finally { submitBtn.disabled = false; submitBtn.innerText = 'Save Student Data'; } }; messageBox.className = 'message error'; messageBox.style.display = 'block'; } finally { submitBtn.disabled = false; submitBtn.innerText = 'حفظ بيانات الطالب'; } };
Web hosting by Somee.com