aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/index.html92
1 files changed, 92 insertions, 0 deletions
diff --git a/templates/index.html b/templates/index.html
new file mode 100644
index 0000000..d0b0630
--- /dev/null
+++ b/templates/index.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>snekboxweb</title>
+<script language="javascript" type="text/javascript">
+
+let _ready = false
+var output;
+
+function init(){
+ output = document.getElementById("output");
+ websocketHandler();
+}
+
+function websocketHandler(){
+ var here = window.location.host;
+ var wsUri = `ws://${here}/ws`;
+ websocket = new WebSocket(wsUri);
+ websocket.onopen = function(evt) { onOpen(evt) };
+ websocket.onclose = function(evt) { onClose(evt) };
+ websocket.onmessage = function(evt) { onMessage(evt) };
+ websocket.onerror = function(evt) { onError(evt) };
+}
+
+function onOpen(evt){
+ _ready = true
+ console.log("CONNECTED");
+}
+
+function onClose(evt){
+ _ready = false
+ console.log("DISCONNECTED");
+}
+
+function onMessage(evt){
+ writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
+}
+
+function exit(){
+ websocket.close();
+}
+
+function onError(evt){
+ _ready = false
+ writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
+}
+
+function sendMessage(msg){
+ waitForSocketConnection(function(){
+ websocket.send(msg);
+ });
+ console.log("sent message "+msg)
+}
+
+function waitForSocketConnection(callback){
+ setTimeout(
+ function () {
+ if (_ready === true) {
+ if(callback != null){
+ callback();}
+ return;
+ }
+ else {
+ waitForSocketConnection(callback);}
+
+ }, 500); // milliseconds
+}
+
+function writeToScreen(message){
+ var pre = document.createElement("p");
+ pre.style.wordWrap = "break-word";
+ pre.innerHTML = message;
+ output.appendChild(pre);
+}
+
+function sendFromInput(){
+ var msg = document.getElementById("field1").value;
+ sendMessage(msg)
+}
+
+window.addEventListener("load", init, false);
+
+</script>
+
+<textarea rows="4" cols="50" type="text" id="field1">
+def sum(a,b):
+ return a+b
+print( sum(1,2) )
+</textarea>
+<br>
+<button onclick="sendFromInput()">Send</button>
+<button onclick="exit()">disconnect from websocket</button>
+<div id="output"></div>