Changes for page Treeview

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

From version 1.1
edited by Ludovic Dubost
on 2010/11/03 01:11
Change comment: There is no comment for this version
To version 11.1
edited by Ludovic Dubost
on 2010/11/03 01:20
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="2" /}}
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,0 +1,96 @@
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, 0, 40))
25 + #set($page = $listtool.get($res, 0))
26 + #if($page!="")
27 + #set($parent = $listtool.get($res, 1))
28 + #set($ok = $treelist.add({"id" : $page, "value" : $page, "parent" : $parent, "url" : $xwiki.getURL($page), "expanded" : $expanded}))
29 + #set($ok = $newpages.add($page))
30 + #end
31 +#end
32 +#set($pages = $newpages)
33 +## PAGES: $pages
34 +#end
35 +#end ## end macro
36 +## adding $maxdepth level
37 +#if($maxdepth)
38 + #set($maxdepth = 3)
39 +#end
40 +#foreach($i in [1..$maxdepth])
41 + #if($velocityCount==1)
42 + #addlevel(true)
43 + #else
44 + #addlevel(false)
45 + #end
46 +#end
47 +#if(!$treeviewid)
48 +#set($treeviewid = 1)
49 +#else
50 +#set($treeviewid = 1 + $treeviewid)
51 +#end
52 +#if($treeviewid == 1)
53 +<style type="text/css">
54 +@import "$xwiki.getSkinFile("js/yui/treeview/assets/tree.css")";
55 +</style>
56 +<script type='text/javascript' src='$xwiki.getSkinFile("js/yui/yahoo/yahoo-min.js")'></script>
57 +<script type='text/javascript' src='$xwiki.getSkinFile("js/yui/treeview/treeview-min.js")'></script>
58 +#end
59 +#set($tviewid = $xwiki.getCounter("treeviewid"))
60 +<div id="treeview${tviewid}"></div>
61 +<script type="text/javascript">
62 + var tree${tviewid};
63 + var nodes${tviewid} = {};
64 + var nodeIndex${tviewid};
65 +
66 + function addTreeElement(tree, nodes, id, text, parent, url, expanded) {
67 + var parent2;
68 + if (parent=="")
69 + parent2 = tree.getRoot();
70 + else
71 + parent2 = nodes[parent];
72 + nodes[id] = new YAHOO.widget.TextNode(text, parent2, expanded);
73 + nodes[id].href = url;
74 + }
75 +
76 + function treeInit${tviewid}() {
77 + tree${tviewid} = new YAHOO.widget.TreeView("treeview${tviewid}");
78 + var tree = tree${tviewid};
79 + var nodes = nodes${tviewid};
80 + #foreach($item in $treelist)
81 + #if ($item.value.length() > 80)
82 + #set($title_item = $item.value.substring(0, 80))
83 + #else
84 + #set($title_item = $item.value)
85 + #end
86 + #set($title_item = $title_item.replaceAll("[\r\n]"," "))
87 + addTreeElement(tree, nodes, "$item.id", "$title_item", "$item.parent", "$item.url", $item.expanded)
88 + #end
89 + tree.draw();
90 + }
91 +
92 + // Init the tree
93 + treeInit${tviewid}();
94 +</script>
95 +{{/html}}
96 +{{/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