Changes for page Tree Macro
Last modified by Ludovic Dubost on 2024/07/22 15:50
From version 5.1
edited by Ludovic Dubost
on 2016/10/24 00:53
on 2016/10/24 00:53
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-tree-macro-8.2.1]
To version 3.1
edited by Ludovic Dubost
on 2015/11/28 14:58
on 2015/11/28 14:58
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-tree-macro-7.3]
Summary
-
Objects (1 modified, 1 added, 1 removed)
Details
- XWiki.WikiMacroClass[0]
-
- Macro code
-
... ... @@ -1,15 +3,65 @@ 1 -{{template name="tree_macros.vm" /}} 2 - 3 3 {{velocity output="false"}} 4 -#set ($options = {}) 5 -#foreach ($parameterName in $xcontext.macro.params.parameterNames) 6 - #set ($discard = $options.put($parameterName, $xcontext.macro.params.get($parameterName))) 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')) 7 7 #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'")) 8 8 #set ($content = $xcontext.macro.content) 9 9 #if ("$!content" == '' && $xcontext.action == 'edit' && $editor == 'wysiwyg') 10 10 #set ($content = "$services.icon.render('chart_organisation') $services.localization.render('tree.macro.editModeWarning')") 11 11 #end 12 -#set ($output = "(% #treeAttributes($optionstrue) %)((($!content)))")62 +#set ($output = "(% $stringtool.join($attributes, ' ') %)((($!content)))") 13 13 ## Parse the output and return the resulting XDOM blocks. 14 14 #set ($xcontext.macro.result = $services.rendering.parse($output, $xwiki.currentContentSyntaxId).children) 15 15 {{/velocity}}
- XWiki.WikiMacroParameterClass[12]
-
- Parameter default value
-
... ... @@ -1,1 +1,0 @@ 1 -15 - Parameter description
-
... ... @@ -1,1 +1,0 @@ 1 -The maximum number of child nodes to display when expanding a parent node for the first time. The rest of the child nodes are accessible through a "more ..." link. This parameter is basically used to paginate the child nodes and thus helps the tree scale when the number of child nodes is large. The tree passes this parameter to the tree source so it works only with dynamic trees whose source implements child count limit. - Parameter mandatory
-
... ... @@ -1,1 +1,0 @@ 1 -No - Parameter name
-
... ... @@ -1,1 +1,0 @@ 1 -limit
- XWiki.JavaScriptExtension[0]
-
- Caching policy
-
... ... @@ -1,0 +1,1 @@ 1 +long - Code
-
... ... @@ -1,0 +1,10 @@ 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,0 +1,1 @@ 1 +Initialization Code - Parse content
-
... ... @@ -1,0 +1,1 @@ 1 +Yes - Use this extension
-
... ... @@ -1,0 +1,1 @@ 1 +onDemand