aboutsummaryrefslogtreecommitdiff
path: root/templates
diff options
context:
space:
mode:
authorGuillermo Ramos2014-09-27 15:34:15 +0200
committerGuillermo Ramos2014-09-27 16:12:49 +0200
commit6e99d20972bec95d3502ef7549d74f67b4cf0001 (patch)
tree387c36753f158db69dc117ede96a8586d4697f63 /templates
downloadturing-web-6e99d20972bec95d3502ef7549d74f67b4cf0001.tar.gz
Initial commit (using Yesod's scaffolding)
Diffstat (limited to 'templates')
-rw-r--r--templates/default-layout-wrapper.hamlet48
-rw-r--r--templates/default-layout.hamlet3
-rw-r--r--templates/home.hamlet17
-rw-r--r--templates/home.julius73
4 files changed, 141 insertions, 0 deletions
diff --git a/templates/default-layout-wrapper.hamlet b/templates/default-layout-wrapper.hamlet
new file mode 100644
index 0000000..b222256
--- /dev/null
+++ b/templates/default-layout-wrapper.hamlet
@@ -0,0 +1,48 @@
+$newline never
+\<!doctype html>
+\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
+\<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
+\<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
+\<!--[if gt IE 8]><!-->
+<html class="no-js" lang="en"> <!--<![endif]-->
+ <head>
+ <meta charset="UTF-8">
+
+ <title>#{pageTitle pc}
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+
+ ^{pageHead pc}
+
+ \<!--[if lt IE 9]>
+ \<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+ \<![endif]-->
+
+ <script>
+ document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');
+ <body>
+ <div class="container">
+ <header>
+ <div id="main" role="main">
+ ^{pageBody pc}
+ <footer>
+ #{extraCopyright $ appExtra $ settings master}
+
+ $maybe analytics <- extraAnalytics $ appExtra $ settings master
+ <script>
+ if(!window.location.href.match(/localhost/)){
+ window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];
+ (function() {
+ \ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ \ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ \ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+ }
+ \<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6. chromium.org/developers/how-tos/chrome-frame-getting-started -->
+ \<!--[if lt IE 7 ]>
+ <script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">
+ <script>
+ window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})
+ \<![endif]-->
diff --git a/templates/default-layout.hamlet b/templates/default-layout.hamlet
new file mode 100644
index 0000000..fa86744
--- /dev/null
+++ b/templates/default-layout.hamlet
@@ -0,0 +1,3 @@
+$maybe msg <- mmsg
+ <div #message>#{msg}
+^{widget}
diff --git a/templates/home.hamlet b/templates/home.hamlet
new file mode 100644
index 0000000..ed377e9
--- /dev/null
+++ b/templates/home.hamlet
@@ -0,0 +1,17 @@
+<div class="container">
+ <h1>Turing Machine simulator!
+ <div class="row">
+ <div class="col-sm-12 col-md-12">
+ <div class="row">
+ <div class="col-sm-12 col-md-12">
+ <pre id="#{results}">
+ <div class="row">
+ <div class="col-sm-12 col-md-12">
+ <button id="#{butBeginning}" class="btn">
+ <span class="glyphicon glyphicon-fast-backward">
+ <button id="#{butBackward}" class="btn">
+ <span class="glyphicon glyphicon-step-backward">
+ <button id="#{butTogglePlay}" class="btn">
+ <span class="glyphicon glyphicon-play">
+ <button id="#{butForward}" class="btn">
+ <span class="glyphicon glyphicon-step-forward">
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 + ")");
+ };
+});