summaryrefslogtreecommitdiff
path: root/view.js
diff options
context:
space:
mode:
Diffstat (limited to 'view.js')
-rw-r--r--view.js148
1 files changed, 148 insertions, 0 deletions
diff --git a/view.js b/view.js
new file mode 100644
index 0000000..74e91ff
--- /dev/null
+++ b/view.js
@@ -0,0 +1,148 @@
+/* -*- Mode: javascript; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set et sw=2 ts=2: */
+
+/*
+function createTask()
+{
+ var task = new Task();
+ task.id = 42;
+ task.dump = function() {
+ alert(this.id);
+ }
+}
+*/
+
+function createId(boardid, taskid)
+{
+ return "b" + boardid + "_t" + taskid;
+}
+
+function idFromStr(str)
+{
+ return str.substring(str.search('t') + 1, str.length);
+}
+
+function getTask(observeid, id)
+{
+
+}
+
+function updateTask(observeid, id, name, value)
+{
+}
+
+function getBoard(observeid)
+{
+ var board = document.getElementById("board_" + observeid);
+ if(!board) {
+ board = document.createElement("div");
+ board.name = "board";
+ board.setAttribute("class", "board");
+ board.id = "board_" + observeid;
+ boards.appendChild(board);
+ }
+
+ return board;
+}
+
+//////////////////////////////////////////////////////
+//////////////////////////////////////////////////////
+
+function clear() {
+ document.getElementById("input_data").value = "";
+}
+
+function deleteTask(id) {
+ socket_task.send("remove " + id + ";");
+}
+
+function drag(target, e) {
+ e.dataTransfer.setData('Text', target.id);
+ e.stopPropagation(); // <--- this fixes the drag target problem
+}
+
+function drop(target, e) {
+ e.preventDefault();
+ e.stopPropagation();
+
+ var id = e.dataTransfer.getData('Text');
+ var task = document.getElementById(id);
+ socket_task.send("move " + idFromStr(id) + " " + idFromStr(target.id) + ";");
+}
+
+function observeMe(target, e)
+{
+ e.stopPropagation();
+ socket_task.send("observe "+target.title+";");
+}
+
+function unobserveMe(target, e)
+{
+ e.stopPropagation();
+ socket_task.send("unobserve "+target.title+";");
+}
+
+function showHideChildren(target, e)
+{
+ e.stopPropagation();
+ updateid = idFromStr(target.id);
+ if(target.style.backgroundColor != "red") {
+ target.style.backgroundColor = "red";
+ for(var i = 1; i < target.childNodes.length; i++) {
+ target.childNodes[i].style.display = "none";
+ }
+ } else {
+ target.style.backgroundColor = "grey";
+ for(var i = 1; i < target.childNodes.length; i++) {
+ target.childNodes[i].style.display = "block";
+ }
+ }
+}
+
+//
+// Butt ugly.. but hey! it works...
+//
+var updateid;
+var divtxt;
+var oldtxt;
+var oldtitle;
+function onKeyUpHandler(target, e)
+{
+ if(e.which == 13) { // enter
+ divtxt.removeChild(target);
+ oldtxt.nodeValue = 'updating...';
+ socket_task.send("update " + updateid + " \""+target.value+"\";");
+ }
+ if(e.which == 27) { // escape
+ divtxt.removeChild(target);
+ oldtxt.nodeValue = oldtitle;
+ }
+}
+
+function onLostFocusHandler(target, e)
+{
+ if(target.value == oldtitle) {
+ divtxt.removeChild(target);
+ oldtxt.nodeValue = oldtitle;
+ }
+}
+
+function editTitle(target, e)
+{
+ e.stopPropagation();
+ updateid = idFromStr(target.id);
+ if(updateid < 10) return;
+ var inp = document.createElement("input");
+ var txtdiv = document.getElementById(target.id + "_txt");
+ divtxt = txtdiv;
+ oldtxt = txtdiv.firstChild;
+ oldtitle = oldtxt.nodeValue;
+ oldtxt.nodeValue = "";
+ inp.setAttribute("onkeyup", "onKeyUpHandler(this, event)");
+ inp.setAttribute("onblur", "onLostFocusHandler(this, event)");
+ inp.setAttribute("style", "border: inherit; padding: inherit; margin: inherit; background: inherit;");
+ inp.value = oldtitle;
+ lineedit = inp;
+ txtdiv.appendChild(inp);
+ inp.focus();
+}