(function () { document.querySelectorAll('input.task-checkbox[data-task-index]').forEach(function (cb) { cb.addEventListener('change', function () { var idx = cb.dataset.taskIndex; var checked = cb.checked; cb.disabled = true; fetch(window.location.pathname + '?toggle=' + idx, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'checked=' + checked }).then(function (res) { if (!res.ok) { cb.checked = !checked; alert('Failed to save task state (' + res.status + ')'); } }).catch(function () { cb.checked = !checked; alert('Failed to save task state'); }).finally(function () { cb.disabled = false; }); }); }); })();