summaryrefslogtreecommitdiff
path: root/handler.js
diff options
context:
space:
mode:
Diffstat (limited to 'handler.js')
-rw-r--r--handler.js102
1 files changed, 102 insertions, 0 deletions
diff --git a/handler.js b/handler.js
new file mode 100644
index 0000000..60a6aee
--- /dev/null
+++ b/handler.js
@@ -0,0 +1,102 @@
+/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set et sw=2 ts=2: */
+
+
+document.addEventListener("connectEvent", connectEventHandler, false);
+function connectEventHandler(e)
+{
+ document.getElementById("wstask_status").style.backgroundColor = "#40ff40";
+ document.getElementById("wstask_status").textContent = "TaskProto websocket connection opened ";
+ socket_task.send("observe 0;");
+}
+
+document.addEventListener("disconnectEvent", disconnectEventHandler, false);
+function disconnectEventHandler(e)
+{
+ document.getElementById("wstask_status").style.backgroundColor = "#ff4040";
+ document.getElementById("wstask_status").textContent = "TaskProto websocket connection CLOSED ";
+}
+
+document.addEventListener("removeEvent", removeEventHandler, false);
+function removeEventHandler(e)
+{
+ var observeid = e.detail.observeid;
+ var id = e.detail.id;
+
+ var task = findTask(id, observeid);
+ if(task.parent) task.parent.removeChild(task);
+}
+
+document.addEventListener("moveEvent", moveEventHandler, false);
+function moveEventHandler(e)
+{
+ var observeid = e.detail.observeid;
+ var id = e.detail.id;
+ var parentid = e.detail.parentid;
+
+ var task = findTask(id, observeid);
+ var new_parent = findTask(parentid, observeid);
+ if(task != null && new_parent != null) new_parent.addChild(task);
+}
+
+document.addEventListener("createEvent", createEventHandler, false);
+function createEventHandler(e)
+{
+ var observeid = e.detail.observeid;
+ var id = e.detail.id;
+ var parentid = e.detail.parentid;
+
+ var task = new Task(id, observeid);
+ task.create();
+
+ if(parentid == -1) {
+ tasks.push(task);
+ var board = getBoard(observeid);
+ board.appendChild(task.element);
+ return;
+ }
+
+ var parent = findTask(parentid, observeid);
+ if(parent != null) {
+ parent.addChild(task);
+ }
+
+}
+
+document.addEventListener("updateEvent", updateEventHandler, false);
+function updateEventHandler(e)
+{
+ var observeid = e.detail.observeid;
+ var id = e.detail.id;
+ var name = e.detail.name;
+ var value = e.detail.value;
+
+ var task = findTask(id, observeid);
+ if(task == null) return;
+
+ task.setAttribute(name, value);
+
+ //LogEvent("update handled");
+}
+
+///////
+//////
+/////
+////
+///
+//
+
+document.addEventListener("messageEvent", messageEventHandler, false);
+function messageEventHandler(e) {
+ LogEvent(
+ "Event: " + e.detail.time.toLocaleString()+": "+e.detail.message
+ );
+}
+
+// log event in console
+function LogEvent(msg) {
+ var log = document.getElementById("log");
+ log.textContent += msg + "\n";
+ var ot = log.scrollHeight - log.clientHeight;
+ if (ot > 0) log.scrollTop = ot;
+}