Changes for page Tree Macro

Last modified by Ludovic Dubost on 2024/07/22 15:50

From version 3.1
edited by Ludovic Dubost
on 2015/11/28 14:58
Change comment: Install extension [org.xwiki.platform:xwiki-platform-tree-macro-7.3]
To version 4.1
edited by Ludovic Dubost
on 2016/04/01 11:48
Change comment: Install extension [org.xwiki.platform:xwiki-platform-tree-macro-8.0]

Summary

Details

XWiki.JavaScriptExtension[0]
Caching policy
... ... @@ -1,1 +1,0 @@
1 -long
Code
... ... @@ -1,10 +1,0 @@
1 -require(["$!services.webjars.url('org.xwiki.platform:xwiki-platform-tree-webjar', 'require-config.min.js', {'evaluate': true})"], function() {
2 - require(['tree'], function($) {
3 - $('.xtree').xtree().one('ready.jstree', function(event, data) {
4 - var tree = data.instance;
5 - var openToNodeId = tree.element.attr('data-openTo');
6 - // Open the tree to the specified node and select it.
7 - openToNodeId && data.instance.openTo(openToNodeId);
8 - });
9 - });
10 -});
Name
... ... @@ -1,1 +1,0 @@
1 -Initialization Code
Parse content
... ... @@ -1,1 +1,0 @@
1 -Yes
Use this extension
... ... @@ -1,1 +1,0 @@
1 -onDemand
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,65 +1,15 @@
1 +{{template name="tree_macros.vm" /}}
2 +
1 1  {{velocity output="false"}}
2 -#set ($discard = $xwiki.linkx.use($services.webjars.url('org.xwiki.platform:xwiki-platform-tree-webjar', 'tree.min.css',
3 - {'evaluate': true}), {'type': 'text/css', 'rel': 'stylesheet'}))
4 -#set ($discard = $xwiki.jsx.use($xcontext.macro.doc))
5 -#set ($classes = ['xtree', "$!xcontext.macro.params.get('class')"])
6 -#set ($noLinks = $xcontext.macro.params.links != 'true')
7 -#if ($noLinks)
8 - #set ($discard = $classes.add('jstree-no-links'))
4 +#set ($options = {})
5 +#foreach ($parameterName in $xcontext.macro.params.parameterNames)
6 + #set ($discard = $options.put($parameterName, $xcontext.macro.params.get($parameterName)))
9 9  #end
10 -#set ($attributes = [
11 - "class='$!escapetool.xml($stringtool.join($classes, ' '))'",
12 - 'data-responsive="true"'
13 -])
14 -#if ("$!xcontext.macro.params.reference" != '')
15 - #set ($defaultResourceParams = {
16 - 'root': '',
17 - 'showRoot': false
18 - })
19 - #set ($resourceParams = {})
20 - #foreach ($entry in $defaultResourceParams.entrySet())
21 - #set ($value = $xcontext.macro.params.get($entry.key))
22 - #if ("$!value" != '' && $value != "$!entry.value")
23 - #set ($discard = $resourceParams.put($entry.key, $value))
24 - #end
25 - #end
26 - #set ($reference = $xcontext.macro.params.reference)
27 - #if ($reference.startsWith('path:'))
28 - ## URL/Path reference
29 - #set ($resourceURL = $reference.substring(5))
30 - #set ($resourceURL = "$resourceURL#if ($resourceURL.indexOf('?') < 0)?#else&#end$escapetool.url($resourceParams)")
31 - #else
32 - ## Document reference
33 - #if ($reference.startsWith('doc:'))
34 - #set ($reference = $reference.substring(4))
35 - #end
36 - #set ($resourceParams.outputSyntax = 'plain')
37 - #set ($resourceURL = $xwiki.getURL($reference, 'get', $escapetool.url($resourceParams)))
38 - #end
39 - #set ($discard = $attributes.add("data-url='$resourceURL'"))
40 -#end
41 -#set ($dragAndDrop = $xcontext.macro.params.dragAndDrop == 'true')
42 -#set ($discard = $attributes.add("data-dragAndDrop='$dragAndDrop'"))
43 -#set ($contextMenu = $xcontext.macro.params.contextMenu == 'true')
44 -#set ($discard = $attributes.add("data-contextMenu='$contextMenu'"))
45 -#set ($icons = $xcontext.macro.params.icons == 'true')
46 -#set ($discard = $attributes.add("data-icons='$icons'"))
47 -#set ($edges = $xcontext.macro.params.edges == 'true')
48 -#set ($discard = $attributes.add("data-edges='$edges'"))
49 -#set ($checkboxes = $xcontext.macro.params.checkboxes == 'true')
50 -#set ($discard = $attributes.add("data-checkboxes='$checkboxes'"))
51 -#set ($discard = $attributes.add("data-openTo='$!escapetool.xml($xcontext.macro.params.openTo)'"))
52 -#set ($finder = $xcontext.macro.params.finder == 'true')
53 -#if ($finder)
54 - #set ($discard = $xwiki.linkx.use($services.webjars.url('org.xwiki.platform:xwiki-platform-tree-webjar',
55 - 'finder.min.css', {'evaluate': true}), {'type': 'text/css', 'rel': 'stylesheet'}))
56 -#end
57 -#set ($discard = $attributes.add("data-finder='$finder'"))
58 58  #set ($content = $xcontext.macro.content)
59 59  #if ("$!content" == '' && $xcontext.action == 'edit' && $editor == 'wysiwyg')
60 60   #set ($content = "$services.icon.render('chart_organisation') $services.localization.render('tree.macro.editModeWarning')")
61 61  #end
62 -#set ($output = "(% $stringtool.join($attributes, ' ') %)((($!content)))")
12 +#set ($output = "(% #treeAttributes($options true) %)((($!content)))")
63 63  ## Parse the output and return the resulting XDOM blocks.
64 64  #set ($xcontext.macro.result = $services.rendering.parse($output, $xwiki.currentContentSyntaxId).children)
65 65  {{/velocity}}