Changes for page Treeview

Last modified by Ludovic Dubost on 2023/04/25 09:12

From version 2.1
edited by Ludovic Dubost
on 2010/11/03 01:11
Change comment: There is no comment for this version
To version 6.1
edited by Ludovic Dubost
on 2010/11/03 01:16
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,0 +1,1 @@
1 +Treeview
Syntax
... ... @@ -1,1 +1,1 @@
1 -XWiki 1.0
1 +XWiki 2.0
Content
... ... @@ -1,0 +1,2 @@
1 +
2 +{{treeview page="Test.TestParent1" maxdepth="3" /}}
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,0 +1,94 @@
1 +{{velocity}}
2 +{{html clean=false}}
3 +#set($rootpage = $xcontext.macro.params.page)
4 +#set($maxdepth = $xcontext.macro.params.maxdepth)
5 +#set($selectlist = $util.arrayList)
6 +#set($treelist = $util.arrayList)
7 +#set($ok = $treelist.add({"id" : $rootpage, "value" : $rootpage, "parent" : "", "url" : $xwiki.getURL($rootpage), "expanded" : true}))
8 +#set($maxlevels = 3)
9 +#set($currentlevel = 1)
10 +#set($pages = $util.arrayList)
11 +#set($ok = $pages.add($rootpage))
12 +#macro(addlevel $expanded)
13 +#if($pages.size()>0)
14 +#set($newpages = $util.arrayList)
15 +#set($parentlist = "")
16 +#foreach($page in $pages)
17 + #if($velocityCount>1)
18 + #set($parentlist = "${parentlist}','${page}")
19 + #else
20 + #set($parentlist = $page)
21 + #end
22 +#end
23 +#set($sql = "select doc.fullName, doc.parent from XWikiDocument as doc where doc.parent in ('${parentlist}')")
24 +#foreach($res in $xwiki.search($sql))
25 + #set($page = $listtool.get($res, 0))
26 + #set($parent = $listtool.get($res, 1))
27 + #set($ok = $treelist.add({"id" : $page, "value" : $page, "parent" : $parent, "url" : $xwiki.getURL($page), "expanded" : $expanded}))
28 + #set($ok = $newpages.add($page))
29 +#end
30 +#set($pages = $newpages)
31 +## PAGES: $pages
32 +#end
33 +#end ## end macro
34 +## adding $maxdepth level
35 +#if($maxdepth)
36 + #set($maxdepth = 3)
37 +#end
38 +#foreach($i in [1..$maxdepth])
39 + #if($velocityCount==1)
40 + #addlevel(true)
41 + #else
42 + #addlevel(false)
43 + #end
44 +#end
45 +#if(!$treeviewid)
46 +#set($treeviewid = 1)
47 +#else
48 +#set($treeviewid = 1 + $treeviewid)
49 +#end
50 +#if($treeviewid == 1)
51 +<style type="text/css">
52 +@import "$xwiki.getSkinFile("js/yui/treeview/assets/tree.css")";
53 +</style>
54 +<script type='text/javascript' src='$xwiki.getSkinFile("js/yui/yahoo/yahoo-min.js")'></script>
55 +<script type='text/javascript' src='$xwiki.getSkinFile("js/yui/treeview/treeview-min.js")'></script>
56 +#end
57 +#set($tviewid = $xwiki.getCounter("treeviewid"))
58 +<div id="treeview${tviewid}"></div>
59 +<script type="text/javascript">
60 + var tree${tviewid};
61 + var nodes${tviewid} = {};
62 + var nodeIndex${tviewid};
63 +
64 + function addTreeElement(tree, nodes, id, text, parent, url, expanded) {
65 + var parent2;
66 + if (parent=="")
67 + parent2 = tree.getRoot();
68 + else
69 + parent2 = nodes[parent];
70 + nodes[id] = new YAHOO.widget.TextNode(text, parent2, expanded);
71 + nodes[id].href = url;
72 + }
73 +
74 + function treeInit${tviewid}() {
75 + tree${tviewid} = new YAHOO.widget.TreeView("treeview${tviewid}");
76 + var tree = tree${tviewid};
77 + var nodes = nodes${tviewid};
78 + #foreach($item in $treelist)
79 + #if ($item.value.length() > 80)
80 + #set($title_item = $item.value.substring(0, 80))
81 + #else
82 + #set($title_item = $item.value)
83 + #end
84 + #set($title_item = $title_item.replaceAll("[\r\n]"," "))
85 + addTreeElement(tree, nodes, "$item.id", "$title_item", "$item.parent", "$item.url", $item.expanded)
86 + #end
87 + tree.draw();
88 + }
89 +
90 + // Init the tree
91 + treeInit${tviewid}();
92 +</script>
93 +{{/html}}
94 +{{/velocity}}
Macro content availability
... ... @@ -1,0 +1,1 @@
1 +No content
Default category
... ... @@ -1,0 +1,1 @@
1 +navigation
Macro description
... ... @@ -1,0 +1,1 @@
1 +Treeview
Macro id
... ... @@ -1,0 +1,1 @@
1 +treeview
Macro name
... ... @@ -1,0 +1,1 @@
1 +treeview
Supports inline mode
... ... @@ -1,0 +1,1 @@
1 +No
Macro visibility
... ... @@ -1,0 +1,1 @@
1 +Current Wiki
XWiki.WikiMacroParameterClass[0]
Parameter default value
... ... @@ -1,0 +1,1 @@
1 +Main.WebHome
Parameter description
... ... @@ -1,0 +1,1 @@
1 +Initial page of the tree
Parameter mandatory
... ... @@ -1,0 +1,1 @@
1 +Yes
Parameter name
... ... @@ -1,0 +1,1 @@
1 +page
XWiki.WikiMacroParameterClass[1]
Parameter default value
... ... @@ -1,0 +1,1 @@
1 +3
Parameter description
... ... @@ -1,0 +1,1 @@
1 +Max depth of the tree
Parameter mandatory
... ... @@ -1,0 +1,1 @@
1 +No
Parameter name
... ... @@ -1,0 +1,1 @@
1 +maxdepth