diff options
author | Jonas Suhr Christensen <jsc@umbraculum.org> | 2012-03-10 14:56:34 +0100 |
---|---|---|
committer | Jonas Suhr Christensen <jsc@umbraculum.org> | 2012-03-10 14:56:34 +0100 |
commit | 39396a2660150770c3fd14aac8b4be0dcbae8497 (patch) | |
tree | ec1604a37725de1dfafade10bb4cb24d89e6322c /proto.js | |
parent | 0f00f525e5c4da9f5a96cd35c3cdad50f84b51d9 (diff) |
Added new task hierarchy based protocol.
Drag and drop works somehow - maybe some weirdness in html5 drag and drop.
Diffstat (limited to 'proto.js')
-rw-r--r-- | proto.js | 127 |
1 files changed, 84 insertions, 43 deletions
@@ -150,44 +150,67 @@ try { if(cmd == "del") { var id = msg[1]; var task = document.getElementById("task_" + id); - document.body.removeChild(task); + //todo: remove from parent not body + document.body.removeChild(task); } else if(cmd == "move") { var id = msg[1]; - var left = msg[2]; - var top = msg[3]; + var parent_id = msg[2]; +// var left = msg[2]; +// var top = msg[3]; var task = document.getElementById("task_" + id); - task.style.left = left + "px"; - task.style.top = top + "px"; + var parent_task = document.getElementById("task_" + parent_id); +// task.parentNode.removeChild(task); + parent_task.appendChild(task); +// document.body.removeChild(task); +// parent_task.appendChild(task); +// task.style.left = left + "px"; +// task.style.top = top + "px"; } else if(cmd == "add") { var id = msg[1]; var title = msg[2]; var description = msg[3]; - var left = msg[4]; - var top = msg[5]; + var parent_id = msg[4]; +// var left = msg[4]; +// var top = msg[5]; var task = document.createElement("div"); task.name = "task"; task.setAttribute("class", "task"); - task.id = "task_" + id; + task.setAttribute("ondrop", "drop(this, event)"); + task.setAttribute("ondragenter", "return false"); + task.setAttribute("ondragover", "return false"); + task.setAttribute("draggable", true); + task.setAttribute("ondragstart", "drag(this, event)"); + + task.id = "task_" + id; var taskText = document.createTextNode(title + ": " + description + " :" + task.id); task.appendChild(taskText); - task.style.position = "absolute"; - task.style.left = left + "px"; - task.style.top = top + "px"; - task.setAttribute("onMouseDown", "dragged = '" + id + "';"); +// task.style.position = "absolute"; +// task.style.left = left + "px"; +// task.style.top = top + "px"; +// task.setAttribute("onMouseDown", "dragged = '" + id + "';"); - var dlButton = document.createElement("input"); - dlButton.type = "button"; - dlButton.value = "Remove"; +// var dlButton = document.createElement("input"); +// dlButton.type = "button"; +// dlButton.value = "Remove"; // dlButton.onclick = "deleteTask(document.getElementById(" + task.id + ").id"; - dlButton.setAttribute("onclick", "deleteTask(" + id +")"); - task.appendChild(dlButton); +// dlButton.setAttribute("onclick", "deleteTask(" + id +")"); +// task.appendChild(dlButton); document.body.appendChild(task); + + var parent_task = document.getElementById("task_" + parent_id); + + if(parent_task) { + parent_task.appendChild(task); + } + else { + document.body.appendChild(task); + } } f++; // document.getElementById("box").style.top = i[3] + "px"; @@ -204,45 +227,45 @@ try { alert('<p>Error' + exception + '</p>'); } -var canvas = document.createElement('canvas'); -canvas.height = 600; -canvas.width = 800; -ctx = canvas.getContext("2d"); +//var canvas = document.createElement('canvas'); +//canvas.height = 600; +//canvas.width = 800; +//ctx = canvas.getContext("2d"); -document.addEventListener('mousemove', ev_mousemove, false); -document.addEventListener('mouseup', ev_mouseup, false); +//document.addEventListener('mousemove', ev_mousemove, false); +//document.addEventListener('mouseup', ev_mouseup, false); /* canvas.addEventListener('mousedown', ev_mousedown, false); //cancas.addEventListener('dragend', ev_mousemove, false); */ -offsetX = offsetY = 0; -element = canvas; -if (element.offsetParent) { - do { - offsetX += element.offsetLeft; - offsetY += element.offsetTop; - } while ((element = element.offsetParent)); -} +//offsetX = offsetY = 0; +//element = canvas; +//if (element.offsetParent) { +// do { +// offsetX += element.offsetLeft; +// offsetY += element.offsetTop; +// } while ((element = element.offsetParent)); +//} function update_color() { color = document.getElementById("color").value; } -function ev_mouseup(ev) { - dragged = ''; -} - -function ev_mousemove (ev) -{ - if(dragged == '') return; +//function ev_mouseup(ev) { +// dragged = ''; +//} - var x, y; - x = ev.clientX; - y = ev.clientY; +//function ev_mousemove (ev) +//{ + // if(dragged == '') return; +// +// var x, y; +// x = ev.clientX; +// y = ev.clientY; - socket_lm.send("move " + dragged + " " + x + " " + y); -} +// socket_lm.send("move " + dragged + " " + x + " " + y); +//} function submit() { var data = document.getElementById("input_data").value; @@ -256,3 +279,21 @@ function clear() { function deleteTask(id) { socket_lm.send("del " + id + ";"); } + +function drag(target, e) { + e.dataTransfer.setData('Text', target.id); +} + +function drop(target, e) { + e.preventDefault(); + e.stopPropagation(); + + var id = e.dataTransfer.getData('Text'); + var task = document.getElementById(id); +// task.parentNode.removeChild(task); +// alert("move " + id.substring(5, id.length) + " " + target.id.substring(5,target.id.length) + ";"); + socket_lm.send("move " + id.substring(5, id.length) + " " + target.id.substring(5, target.id.length) + ";"); + +// target.appendChild(task); +} + |