From fd40e5769b73ac62ea59263495ebb1985c78d19a Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Thu, 08 Dec 2016 22:37:32 +0000 Subject: [PATCH] Do not stop refresh timer on failure --- index.js | 32 ++++++++++++++++++++++---------- 1 files changed, 22 insertions(+), 10 deletions(-) diff --git a/index.js b/index.js index 12d1c79..9a1108b 100644 --- a/index.js +++ b/index.js @@ -30,13 +30,14 @@ var alert_text = document.getElementById('alert-text'); var alert_close = document.getElementById('alert-close'); +var parseStatusBoarding = '>>>'; function parseStatus(status) { switch(status.status) { case 'STOPPING': - return '<<<'; + return parseStatusBoarding; case 'PREDICTED': if(status.actualRelativeTime <= 0) - return '<<<'; + return parseStatusBoarding; if(status.actualRelativeTime >= 60) return Math.floor(status.actualRelativeTime / 60) + ' min'; return status.actualRelativeTime + ' s'; @@ -87,11 +88,11 @@ } function addCellWithText(parent, text) { - addElementWithText(parent, 'td', text); + return addElementWithText(parent, 'td', text); } function addParaWithText(parent, text) { - addElementWithText(parent, 'p', text); + return addElementWithText(parent, 'p', text); } function setText(element, text) { @@ -100,7 +101,6 @@ } function fail(message, more) { - if(refresh_timer) clearInterval(refresh_timer); if(times_timer) clearTimeout(times_timer); setText(alert_text, message); @@ -169,13 +169,19 @@ addCellWithText(tr, data.actual[i].patternText); addCellWithText(tr, data.actual[i].direction); var status = parseStatus(data.actual[i]); - addCellWithText(tr, status); + var status_cell = addCellWithText(tr, status); var delay = parseDelay(data.actual[i]); - addCellWithText(tr, delay); + var delay_cell = addCellWithText(tr, delay); - if(status == '<<<') tr.className = 'success'; - else if(parseInt(delay) > 9) tr.className = 'danger'; - else if(parseInt(delay) > 3) tr.className = 'warning'; + if(status == parseStatusBoarding) { + tr.className = 'success'; + status_cell.className = 'status-boarding'; + } else if(parseInt(delay) > 9) { + tr.className = 'danger'; + delay_cell.className = 'status-delayed'; + } else if(parseInt(delay) > 3) { + tr.className = 'warning'; + } times_table.appendChild(tr); } @@ -307,6 +313,7 @@ e.preventDefault(); if(!stop_name_autocomplete.value) return; stop_id = stop_name_autocomplete.value; + window.location.hash = '#!' + stop_id; loadTimes(stop_id, true); }); @@ -317,6 +324,11 @@ alert_close.addEventListener('click', function(e) { alert.style.display = 'none'; }); + + if(window.location.hash.match(/^#![0-9]+$/)) { + stop_id = parseInt(window.location.hash.slice(2)); + loadTimes(stop_id); + } } init(); -- Gitblit v1.9.1