From 6e99d20972bec95d3502ef7549d74f67b4cf0001 Mon Sep 17 00:00:00 2001 From: Guillermo Ramos Date: Sat, 27 Sep 2014 15:34:15 +0200 Subject: Initial commit (using Yesod's scaffolding) --- templates/home.julius | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 templates/home.julius (limited to 'templates/home.julius') diff --git a/templates/home.julius b/templates/home.julius new file mode 100644 index 0000000..da20f7f --- /dev/null +++ b/templates/home.julius @@ -0,0 +1,73 @@ +$(function() { + var ui = { + bBeginning : $("##{rawJS butBeginning}"), + bBackward : $("##{rawJS butBackward}"), + bTogglePlay : $("##{rawJS butTogglePlay}"), + bForward : $("##{rawJS butForward}"), + results : $("##{rawJS results}") + }; + var pollInterval = 10000; + var playing = false; + var timeout = 150; + function poll() { + sock.send("Poll"); + setTimeout(poll, pollInterval); + }; + function forwardWait() { + if (playing === true) { + sock.send("Forward"); + setTimeout(forwardWait, timeout); + } + }; + function enableButtons(buttons) { + for (var i = 0; i < buttons.length; i++) { + buttons[i].removeAttr("disabled"); + }; + }; + function disableButtons(buttons) { + for (var i = 0; i < buttons.length; i++) { + buttons[i].attr("disabled", "disabled"); + }; + }; + function togglePlay() { + var btns = [ui.bBeginning, ui.bBackward, ui.bForward]; + playing = !playing; + if (playing === true) { + disableButtons(btns); + forwardWait(); + } else { + enableButtons(btns); + }; + }; + ui.bBeginning.on("click", function () { + sock.send("Beginning"); + }); + ui.bBackward.on("click", function () { + sock.send("Backward"); + }); + ui.bTogglePlay.on("click", function () { + ui.bTogglePlay.children().toggleClass("glyphicon-play glyphicon-stop"); + togglePlay(); + }); + ui.bForward.on("click", function () { + sock.send("Forward"); + }); + sock = new WebSocket("ws://" + window.location.host); + sock.onopen = function (e) { + enableButtons([ui.bBeginning, ui.bBackward, + ui.bTogglePlay, ui.bForward]); + poll(); + }; + sock.onclose = function (e) { + disableButtons([ui.bBeginning, ui.bBackward, + ui.bTogglePlay, ui.bForward]); + alert("SOCKET CLOSED! D: (" + e.code + ")"); + }; + sock.onmessage = function (e) { + // var data = JSON.parse(e.data); + ui.results.html(e.data); + }; + sock.onerror = function (e) { + alert("ERROR! D: (" + e + ")"); + }; +}); -- cgit v1.2.3