summaryrefslogtreecommitdiff
path: root/workbench_template.js
diff options
context:
space:
mode:
Diffstat (limited to 'workbench_template.js')
-rw-r--r--workbench_template.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/workbench_template.js b/workbench_template.js
new file mode 100644
index 0000000..f9c016c
--- /dev/null
+++ b/workbench_template.js
@@ -0,0 +1,69 @@
+(function(){
+ var shadowBody = null
+ var bootSnippet = "<bootSnippet>"
+ window.onload = function(){
+ shadowBody = document.body.cloneNode(true)
+ }
+ window.addEventListener("keydown", function (event) {
+ if(event.keyCode==13 && event.ctrlKey && event.altKey && event.shiftKey) {
+ clear()
+ eval(bootSnippet)
+ }
+ })
+ function clear(){
+ document.body = shadowBody.cloneNode(true)
+ for(var i = 0; i < 99999; i++){
+ clearTimeout(i)
+ clearInterval(i)
+ }
+ }
+
+ var start = function(){
+ var req = new XMLHttpRequest()
+
+ req.open("POST", "http://<host>:<port>/notifications")
+
+ req.onload = function(){
+ if (req.status != 200){
+ setTimeout(function(){start()}, 1000)
+ }else{
+ var dataList = JSON.parse(req.responseText)
+ for(var i = 0; i < dataList.length; i++){
+
+ var data = dataList[i]
+ if (data[0] == "reload") {
+ console.log("Reloading page...")
+ location.reload()
+ }
+ if (data[0] == "clear"){
+ clear()
+ }
+ if (data[0] == "run"){
+ var tag = document.createElement("script")
+ var loaded = false
+ tag.setAttribute("src", "http://<host>:<port>" + data[1])
+ var bootSnippet = data[2]
+ if (bootSnippet){
+ tag.onreadystatechange = tag.onload = function() {
+ console.log("Post-run reboot")
+ if (!loaded) {
+ console.log("Post-run reboot go!")
+ eval(bootSnippet)
+ }
+ loaded = true
+ };
+ }
+ document.head.appendChild(tag)
+ }
+ if (data[0] == "boot"){
+ eval(bootSnippet)
+ }
+ if (data[0] == "print") console[data[1]](data[2])
+ }
+ start()
+ }
+ }
+ req.send()
+ }
+ start()
+})()