28 lines
1.0 KiB
JavaScript
28 lines
1.0 KiB
JavaScript
// Service Worker Registration for Offline Capability
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', () => {
|
|
navigator.serviceWorker.register('/sw.js')
|
|
.then(reg => console.log('Service Worker registered', reg))
|
|
.catch(err => console.log('Service Worker registration failed', err));
|
|
});
|
|
}
|
|
|
|
// Interactivity for Attendance Toggles
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const tableRows = document.querySelectorAll('#learnersTable tbody tr');
|
|
|
|
tableRows.forEach(row => {
|
|
const presentBtn = row.querySelector('label[for^="pres_"]');
|
|
const absentBtn = row.querySelector('label[for^="abs_"]');
|
|
|
|
// Add subtle feedback on change
|
|
const inputs = row.querySelectorAll('input[type="radio"]');
|
|
inputs.forEach(input => {
|
|
input.addEventListener('change', () => {
|
|
row.classList.add('table-primary');
|
|
setTimeout(() => row.classList.remove('table-primary'), 500);
|
|
});
|
|
});
|
|
});
|
|
});
|