Changes for page Document Tree Macros
Last modified by ztx lyghters on 2025/10/28 11:47
From version 1.1
edited by ztx lyghters
on 2025/01/31 15:59
on 2025/01/31 15:59
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.0.0]
To version 3.1
edited by ztx lyghters
on 2025/10/28 11:47
on 2025/10/28 11:47
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.7.0]
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -152,6 +152,8 @@ 152 152 #set ($limit = $mathtool.max($numbertool.toNumber($request.limit).intValue(), 1)) 153 153 #if ("$!limit" == '') 154 154 #set ($limit = 15) 155 + #else 156 + #validateQueryLimit($limit) 155 155 #end 156 156 #if ($nodeId == '#' && $docTreeConfig.showRoot) 157 157 #maybeAddNode($actualNodeId $children) ... ... @@ -205,6 +205,7 @@ 205 205 206 206 #macro (maybeAddFarmNode $nodeReference $siblings) 207 207 #set ($farmHomeReference = $services.model.resolveDocument('', 'default')) 210 + #set ($isOpened = $docTreeConfig.expandToLevel > 0) 208 208 #set ($discard = $siblings.add({ 209 209 'id': 'farm:*', 210 210 'text': 'Farm', ... ... @@ -214,6 +214,9 @@ 214 214 'type': 'farm', 215 215 'validChildren': ['wiki', 'pagination'] 216 216 }, 220 + 'state': { 221 + 'opened': $isOpened 222 + }, 217 217 'a_attr': { 218 218 'href': $xwiki.getURL($farmHomeReference) 219 219 } ... ... @@ -242,6 +242,7 @@ 242 242 #else 243 243 #set ($label = $wiki.id) 244 244 #end 251 + #set ($isOpened = $docTreeConfig.expandToLevel > 0) 245 245 #set ($discard = $siblings.add({ 246 246 'id': "wiki:$wiki.id", 247 247 'text': $label, ... ... @@ -253,6 +253,9 @@ 253 253 'validChildren': ['space', 'document', 'pagination'], 254 254 'canDelete': $canDeleteWiki 255 255 }, 263 + 'state': { 264 + 'opened': $isOpened 265 + }, 256 256 'a_attr': { 257 257 'href': $xwiki.getURL($wiki.mainPageReference) 258 258 } ... ... @@ -278,6 +278,7 @@ 278 278 279 279 #macro (addSpaceNode $spaceReference $siblings) 280 280 #set ($spaceId = $services.model.serialize($spaceReference, 'default')) 291 + #set ($spaceNodeId = "space:$spaceId") 281 281 #set ($hasSpaceAdmin = $services.security.authorization.hasAccess('admin', $spaceReference)) 282 282 #set ($canViewSpace = $services.security.authorization.hasAccess('view', $spaceReference)) 283 283 #if ($docTreeConfig.showTerminalDocuments) ... ... @@ -285,10 +285,21 @@ 285 285 #set ($hasChildren = true) 286 286 #else 287 287 ## We display only the nested spaces. This space might contain only documents. 288 - #set ($hasChildren = $tree.getChildCount( "space:$spaceId") > 0)299 + #set ($hasChildren = $tree.getChildCount($spaceNodeId) > 0) 289 289 #end 301 + #set ($isOpened = false) 302 + #if ("$!docTreeConfig.expandToLevel" != '') 303 + #set ($rootNode = "wiki:$services.wiki.currentWikiId") 304 + #if ("$!docTreeConfig.root" != '') 305 + #set ($rootNode = "wiki:$services.wiki.currentWikiId") 306 + #else 307 + #set ($rootNode = $docTreeConfig.root) 308 + #end 309 + #set ($rootDistance = $tree.getPath($spaceNodeId).size()) 310 + #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance)) 311 + #end 290 290 #set ($discard = $siblings.add({ 291 - 'id': "space:$spaceId",313 + 'id': $spaceNodeId, 292 292 'text': $spaceReference.name, 293 293 'icon': 'fa fa-folder-o', 294 294 'iconOpened': 'fa fa-folder-open-o', ... ... @@ -306,6 +306,9 @@ 306 306 'createDocumentURL': $xwiki.getURL($spaceReference, 'create', $NULL), 307 307 'deleteURL': $xwiki.getURL($spaceReference, 'deletespace', $NULL) 308 308 }, 331 + 'state': { 332 + 'opened': $isOpened 333 + }, 309 309 'a_attr': { 310 310 'href': $xwiki.getURL($spaceReference) 311 311 } ... ... @@ -331,6 +331,7 @@ 331 331 332 332 #macro (addDocumentNode $documentReference $siblings) 333 333 #set ($documentId = $services.model.serialize($documentReference, 'default')) 359 + #set ($docNodeId = "document:$documentId") 334 334 #set ($label = $documentReference.name) 335 335 #if (!$docTreeConfig.showSpaces && 336 336 $documentReference.name == $services.model.getEntityReference('DOCUMENT', 'default').name) ... ... @@ -347,9 +347,20 @@ 347 347 #set ($label = $plainTitle) 348 348 #end 349 349 #end 350 - #set ($hasChildren = $tree.getChildCount("document:$documentId") > 0) 376 + #set ($hasChildren = $tree.getChildCount($docNodeId) > 0) 377 + #set ($isOpened = false) 378 + #if ("$!docTreeConfig.expandToLevel" != '') 379 + #set ($rootNode = "wiki:$services.wiki.currentWikiId") 380 + #if ("$!docTreeConfig.root" != '') 381 + #set ($rootNode = "wiki:$services.wiki.currentWikiId") 382 + #else 383 + #set ($rootNode = $docTreeConfig.root) 384 + #end 385 + #set ($rootDistance = $tree.getPath($docNodeId).size()) 386 + #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance)) 387 + #end 351 351 #set ($discard = $siblings.add({ 352 - 'id': "document:$documentId",389 + 'id': $docNodeId, 353 353 'text': $label, 354 354 'icon': 'fa fa-file-o', 355 355 'children': $hasChildren, ... ... @@ -364,6 +364,9 @@ 364 364 'canCopy': $canViewDoc, 365 365 'createDocumentURL': $xwiki.getURL($documentReference, 'create', $NULL) 366 366 }, 404 + 'state': { 405 + 'opened': $isOpened 406 + }, 367 367 'a_attr': { 368 368 'href': $xwiki.getURL($documentReference) 369 369 }