diff --git a/web/assets/js/main.js b/web/assets/js/main.js index cbd5db4..c57975f 100644 --- a/web/assets/js/main.js +++ b/web/assets/js/main.js @@ -55,15 +55,15 @@ async function updateStatus() { async function update() { if (null === cursong_startat) - return false; + return -1; const estimate = (new Date()) - (new Date(cursong_startat)); if (estimate >= cursong_duration_msec) { - return false; + return 1; } $("radio-duration-estimate").textContent = `${formatDuration(new Date(estimate))} / `; - return true; + return 0; } $("radio-update").addEventListener("click", async () => @@ -72,11 +72,15 @@ $("radio-update").addEventListener("click", async () => let update_interval_id = null; async function interval() { - if (!await update()) { - clearInterval(update_interval_id); - await new Promise(resolve => setTimeout(resolve, 5000)); - [cursong_duration_msec, cursong_startat] = await updateStatus(); - update_interval_id = setInterval(interval, 1000); + switch (await update()) { + case 1: + [cursong_duration_msec, cursong_startat] = await updateStatus(); + break; + case -1: + clearInterval(update_interval_id); + await new Promise(resolve => setTimeout(resolve, 5000)); + [cursong_duration_msec, cursong_startat] = await updateStatus(); + update_interval_id = setInterval(interval, 1000); } }