forked from snoyberg/yesoddocs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
labels.julius
54 lines (46 loc) · 1.42 KB
/
labels.julius
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function setupDropZones() {
var dz = "<li class='dropzone hidden'>Drop Here</li>"; // TRANS
$("li.dropzone").detach();
$("#labels li").before(dz);
$("#labels ul").append(dz);
}
$(function(){
$("#labels li").addClass("node");
setupDropZones();
var selected;
$("li.node > span").click(function(){
var t = $(this).parent();
var isSel = t.hasClass("selected");
$("li.selected").removeClass("selected");
$("li.dropzone").addClass("hidden");
if (! isSel) {
selectedNode = t.addClass("selected");
$("li.dropzone").removeClass("hidden");
t.prev().addClass("hidden");
t.next().addClass("hidden");
$("li.selected li.dropzone").addClass("hidden");
}
});
$("li.dropzone").live("click", function(){
selectedNode.removeClass("selected");
$(this).before(selectedNode);
setupDropZones();
});
$("#update").click(function(){
$("#tree").attr("value", mkTree($("#labels > ul > li.node")));
});
});
function mkTree(lis) {
var x = ["["];
$.each(lis, function(i, li){
var l = $(li);
if (i != 0) x.push(",");
x.push("{\"id\":\"");
x.push(l.attr("id").substring(5));
x.push("\",\"children\":");
x.push(mkTree(l.children("ul").children("li.node")));
x.push("}");
});
x.push("]");
return x.join("");
}