tree.smarty
2.23 KB
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
{$context->oPage->requireCSSResource("thirdpartyjs/yui/treeview/assets/tree.css")}
{$context->oPage->requireJSResource("thirdpartyjs/yui/yahoo/yahoo-min.js")}
{$context->oPage->requireJSResource("thirdpartyjs/yui/event/event-min.js")}
{$context->oPage->requireJSResource("thirdpartyjs/yui/treeview/treeview-min.js")}
<fieldset>
<legend>Tree Browser</legend>
You can use the tree browser to explore the KnowledgeTree folder hierarchy.
<P>
Clicking on the name of the folder will redirect you to the folder browser. <br>Toggling the plus (+) and minux (-) will expand and collapse the
selected folder respectively.
<div class="yui-skin-sam">
<div id="treeDiv1"></div>
</div>
</fieldset>
{literal}
<script>
var tree = new YAHOO.widget.TreeView("treeDiv1");
tree.setDynamicLoad(loadDataForNode);
var root = tree.getRoot();
var rootObj = { label: "Root Folder", id:1, href:"{/literal}{$rootUrl}{literal}/browse.php?fFolderId=1" } ;
var rootNode = new YAHOO.widget.TextNode(rootObj, root, true);
var folder_busy = false;
var folder_id;
var folder_node;
loadNode(1, rootNode);
var folder_gotNoStatus = function callBack(o)
{
alert('There is a problem communicating with the server.' + o.responseText);
}
var folder_gotFolderStatus = function callBack(o)
{
if (o.responseText != '{}')
{
var resp = eval('(' + o.responseText + ')');
if (resp.status == 0)
{
for(i=0;i<resp.folders.length;i++)
{
var nodeObj = { label: resp.folders[i].name, id: resp.folders[i].id, href:"{/literal}{$rootUrl}{literal}/browse.php?fFolderId=" + resp.folders[i].id };
var node = new YAHOO.widget.TextNode(nodeObj, folder_node, true);
}
folder_node.expand();
}
else
{
alert('There is a problem getting the folders. \n\n' + resp.message );
}
}
folder_busy = false;
}
var folderCallback =
{
success:folder_gotFolderStatus,
failure:folder_gotNoStatus
}
function loadNode(folder_id, node)
{
folder_node = node;
folder_id= node.data.id;
folder_busy = true;
url='{/literal}{$rootUrl}{literal}/search2/ajax/treeNodes.php?folderid=' + folder_id;
YAHOO.util.Connect.asyncRequest('GET',url, folderCallback);
}
function loadDataForNode(node, onCompleteCallback)
{
loadNode(node.data.id, node)
onCompleteCallback();
}
tree.draw();
</script>
{/literal}