From 2c30d72b42949539315d942109bdf083194c1d69 Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Mon, 14 Nov 2011 22:41:03 -0700 Subject: [PATCH] Editable, persistent --- animas.jpg | Bin 52884 -> 0 bytes index.html | 28 +++---- scoreboard.js | 213 ++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 168 insertions(+), 73 deletions(-) delete mode 100644 animas.jpg diff --git a/animas.jpg b/animas.jpg deleted file mode 100644 index 6bdc79704295311f29f310abee0bf16e565f216c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52884 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%0Auq~O&aA05Gog#H4R`xl879tw{* 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 DL%wQG diff --git a/index.html b/index.html index e99af01..6adc1c3 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ - + LADD Scoreboard @@ -10,38 +10,38 @@ - +
- -
- Bombs + + -
- +
-

+

--:--
- --- + -

-

- --- +

+ -
-:--.--

- Animas + + -
- +
- 0 + - - 0 + -
diff --git a/scoreboard.js b/scoreboard.js index 2e455db..a513e0e 100644 --- a/scoreboard.js +++ b/scoreboard.js @@ -1,10 +1,8 @@ -var START = 0; +var TIMEOUT = 0; var JAM = 1; var ROTATE = 2; -var TIMEOUT = 3; -var period = 1; -var state = START; +var state = TIMEOUT; function pad(i) { if (i < 10) { @@ -21,11 +19,8 @@ function startTimer(element, precision, duration, callback) { var precmult = 1; var bg; - for (var i = 0; i < precision; i += 1) { - precmult *= 10; - } - - function display(remain) { + var display = function () { + var remain = element.remaining(); var min = Math.floor(Math.abs(remain / 60000)); var sec = Math.abs(remain / 1000) % 60; @@ -50,7 +45,7 @@ function startTimer(element, precision, duration, callback) { element.innerHTML = ""; if ((duration > 0) && (remain <= 0)) { - this.stop(); + element.stop(); element.innerHTML = "0:0" + (0).toFixed(precision); if (callback) callback(); return; @@ -58,25 +53,31 @@ function startTimer(element, precision, duration, callback) { element.innerHTML += min + ":" + pad(sec.toFixed(precision)); } - function update() { - var now = (new Date()).getTime(); - var remain = beginning + duration - now; - - display(remain); - } - - // Is this timer running? - this.running = function () { - return ~~itimer; + // Is element timer running? + element.running = function () { + return !!itimer; } - // Is this a countdown timer? - this.descending = function () { - return ~~duration; + // Is element a countdown timer? + element.descending = function () { + return !!duration; + } + + element.d = function() { + return [beginning, duration]; + } + + // Return time on clock + element.remaining = function () { + if (element.running()) { + return beginning + duration - (new Date()).getTime(); + } else { + return duration; + } } // Stop (clear timer) - this.stop = function () { + element.stop = function () { if (itimer) { clearInterval(itimer); itimer = undefined; @@ -84,43 +85,47 @@ function startTimer(element, precision, duration, callback) { } // Start - this.start = function () { + element.start = function () { beginning = (new Date()).getTime(); if (itimer) { return; } - itimer = setInterval(update, 100); - display(duration); + itimer = setInterval(display, 100); + display(); } // Unpause if paused - this.go = function (color) { + element.go = function () { if (itimer) return; - this.start(); + element.start(); } // Pause if unpaused - this.pause = function () { + element.pause = function () { if (! itimer) return; - this.stop(); + element.stop(); duration -= (new Date()).getTime() - beginning; - display(duration); + display(); } // Restart with a new time - this.reset = function (t, color) { + element.reset = function (t, color) { bg = color; if (color) { element.style.backgroundColor = color; } duration = t; - this.start(); display(duration); } + // Setup + for (var i = 0; i < precision; i += 1) { + precmult *= 10; + } + if (precision == undefined) { precision = 1; } @@ -129,51 +134,56 @@ function startTimer(element, precision, duration, callback) { element.bg = element.style.backgroundColor; element.fg = element.style.color; } + display(); } // Transition state machine based on state function transition() { - var jt = document.getElementById("jam").timer; - var pt = document.getElementById("period").timer; + var jt = document.getElementById("jam"); + var pt = document.getElementById("period"); var ptext = document.getElementById("periodtext"); var jtext = document.getElementById("jamtext"); if (state == JAM) { pt.go(); jt.reset(120000); + jt.start(); jtext.innerHTML = "Jam"; } else if (state == ROTATE) { pt.go(); jt.reset(30000, "#060"); + jt.start(); jtext.innerHTML = "Rotation"; } else if (state == TIMEOUT) { pt.pause(); jt.reset(0); + jt.start(); jtext.innerHTML = "Timeout"; } ptext.innerHTML = "Period " + period; } +function save() { + localStorage.rdsb_name_a = e("name-a").innerHTML; + localStorage.rdsb_name_b = e("name-b").innerHTML; + localStorage.rdsb_score_a = e("score-a").innerHTML; + localStorage.rdsb_score_b = e("score-b").innerHTML; + localStorage.rdsb_period = period; + localStorage.rdsb_period_clock = e("period").remaining(); +} + + // A timer was clicked // 0 = period timer // 1 = jam timer function timer(tn) { - if (tn == 0) { - if ((state == JAM) || (state == ROTATE)) { - state = TIMEOUT; - } else { - state = JAM; - } - } else { - if (state == JAM) { - state = ROTATE; - } else { - state = JAM; - } - } transition(); } +function e(id) { + return document.getElementById(id); +} + function score(team, points) { var te = document.getElementById("score-" + team); var ts = Number(te.innerHTML); @@ -182,21 +192,106 @@ function score(team, points) { te.innerHTML = ts; } -function mockup() { - var p = document.getElementById("period"); - var j = document.getElementById("jam"); +function teamname(t, v) { + if (! v) return; + e("name-" + t).innerHTML = v || "Home"; + e("logo-" + t).src = v.toLowerCase() + ".png"; +} - p.timer = new startTimer(p, 0, 1800000); +function handle(event) { + var e = event.target; - function jtexp() { - if (state == JAM) { - state = ROTATE; - } else { + if (state == TIMEOUT) { + // During startup, everything is editable + var team = e.id.substr(e.id.length - 1); + + switch (e.id) { + case "name-a": + case "name-b": + teamname(team, prompt("Enter team " + team + " name", e.innerHTML)); + break; + case "score-a": + case "score-b": + var s = prompt("Enter team " + team + " score", e.innerHTML); + if (! s) return; + + e.innerHTML = s; + break; + case "period": + var r = prompt("Enter new time for period clock", e.innerHTML); + if (! r) return; + + var t = r.split(":"); + var sec = 0; + + if (t.length > 3) { + e.innerHTML = "What?"; + return; + } + + for (var i in t) { + var v = t[i]; + + sec = (sec * 60) + Number(v); + } + + e.reset(sec*1000); + break; + case "periodtext": + period = 3 - period; + e.innerHTML = "Period " + period; + break; + case "jam": state = JAM; + break; + } + } else { + switch (e.id) { + case "period": + state = TIMEOUT; + break; + case "jam": + if (state == JAM) { + state = ROTATE; + } else { + state = JAM; + } + break; + case "name-a": + case "logo-a": + score("a", -1); + break; + case "score-a": + score("a", 1); + break; + case "name-b": + case "logo-b": + score("b", -1); + break; + case "score-b": + score("b", 1); + break; } transition(); } - j.timer = new startTimer(j, 1, 120000, jtexp); } -window.onload = mockup; +function start() { + var p = document.getElementById("period"); + var j = document.getElementById("jam"); + + teamname("a", localStorage.rdsb_name_a || "Home"); + teamname("b", localStorage.rdsb_name_b || "Visitor"); + e("score-a").innerHTML = localStorage.rdsb_score_a || 0; + e("score-b").innerHTML = localStorage.rdsb_score_b || 0; + period = localStorage.rdsb_period || 1; + + c = Number(localStorage.rdsb_period_clock || 1800000); + startTimer(p, 0, c); + startTimer(j, 1, 120000); + + save_itimer = setInterval(save, 1000); + transition(); +} + +window.onload = start;