Изменения документа Document Tree Macros
Редактировал(а) Андрей Ганьков 2025/11/13 18:51
От версии 7.1
отредактировано Андрей Ганьков
на 2025/11/13 18:51
на 2025/11/13 18:51
Изменить комментарий:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.9.0]
К версии 3.1
отредактировано Андрей Ганьков
на 2023/04/03 09:34
на 2023/04/03 09:34
Изменить комментарий:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/15.2]
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -31,15 +31,9 @@ 31 31 #end 32 32 ## Handle relative references 33 33 #makeNodeReferencesAbsolute($docTreeConfig ['root', 'openTo']) 34 - ## FIXME: The 'orderBy' property of the tree API is shared by all tree node types, which means we can't indicate a 35 - ## different sort field per tree node type (e.g. sort wiki nodes by name and document nodes by last modification 36 - ## date). At the same time, this property is currently taken into account only for sorting document tree nodes, so for 37 - ## now we set its value to the specified document sort. In the future we may want to convert this into a map, where 38 - ## the key is the node type. 39 - #set ($docTreeConfig.orderBy = $docTreeConfig.sortDocumentsBy) 40 - ## Sort the child documents by (raw) title when the node label is the document title and there's no sort specified. 41 - #if ($docTreeConfig.showDocumentTitle && "$!docTreeConfig.orderBy" == '') 42 - #set ($docTreeConfig.orderBy = 'title:asc') 34 + ## Sort the child documents by (raw) title when the node label is the document title. 35 + #if ($docTreeConfig.showDocumentTitle) 36 + #set ($docTreeConfig.orderBy = 'title') 43 43 #end 44 44 ## Determine which hierarchy needs to be used. 45 45 #if ($docTreeConfig.showSpaces) ... ... @@ -82,11 +82,7 @@ 82 82 #macro (handleDocumentTreeRequest) 83 83 #if ($request.action) 84 84 #if ($services.csrf.isTokenValid($request.form_token)) 85 - #if ($request.action == 'create' && $request.type == 'addDocument') 86 - #handleNewNodeCreationRequest() 87 - #else 88 - $response.sendError(400, 'The specified action is not supported.') 89 - #end 79 + $response.sendError(400, 'The specified action is not supported.') 90 90 #elseif ($isAjaxRequest) 91 91 $response.sendError(403, 'The CSRF token is missing.') 92 92 #else ... ... @@ -112,22 +112,6 @@ 112 112 #end 113 113 #end 114 114 115 -#macro (handleNewNodeCreationRequest) 116 - #set ($cleanId = $stringtool.substring($request.id, $stringtool.length('document:'))) 117 - #set ($parentReference = $services.model.resolveDocument($cleanId)) 118 - #set ($requestedName = $request.name) 119 - #set ($transformedName = $services.modelvalidation.transformName($requestedName)) 120 - #set ($spaceReference = $services.model.createSpaceReference($transformedName, $parentReference.lastSpaceReference)) 121 - #set ($documentReference = $services.model.createDocumentReference('WebHome', $spaceReference)) 122 - #set ($data = []) 123 - #addDocumentNode($documentReference, $data) 124 - ## We want to allow opening the node to add another hierarchy. 125 - #set ($data[0].children = true) 126 - ## We want to display the actual requested name as node name. 127 - #set ($data[0].text = $requestedName) 128 - #jsonResponse($data) 129 -#end 130 - 131 131 #macro (postProcessDocumentTreeData $data) 132 132 ## This is just a hook to allow post processing the document tree data. 133 133 #end ... ... @@ -152,8 +152,6 @@ 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) 157 157 #end 158 158 #if ($nodeId == '#' && $docTreeConfig.showRoot) 159 159 #maybeAddNode($actualNodeId $children) ... ... @@ -207,7 +207,6 @@ 207 207 208 208 #macro (maybeAddFarmNode $nodeReference $siblings) 209 209 #set ($farmHomeReference = $services.model.resolveDocument('', 'default')) 210 - #set ($isOpened = $docTreeConfig.expandToLevel > 0) 211 211 #set ($discard = $siblings.add({ 212 212 'id': 'farm:*', 213 213 'text': 'Farm', ... ... @@ -217,9 +217,6 @@ 217 217 'type': 'farm', 218 218 'validChildren': ['wiki', 'pagination'] 219 219 }, 220 - 'state': { 221 - 'opened': $isOpened 222 - }, 223 223 'a_attr': { 224 224 'href': $xwiki.getURL($farmHomeReference) 225 225 } ... ... @@ -248,7 +248,6 @@ 248 248 #else 249 249 #set ($label = $wiki.id) 250 250 #end 251 - #set ($isOpened = $docTreeConfig.expandToLevel > 0) 252 252 #set ($discard = $siblings.add({ 253 253 'id': "wiki:$wiki.id", 254 254 'text': $label, ... ... @@ -260,9 +260,6 @@ 260 260 'validChildren': ['space', 'document', 'pagination'], 261 261 'canDelete': $canDeleteWiki 262 262 }, 263 - 'state': { 264 - 'opened': $isOpened 265 - }, 266 266 'a_attr': { 267 267 'href': $xwiki.getURL($wiki.mainPageReference) 268 268 } ... ... @@ -288,7 +288,6 @@ 288 288 289 289 #macro (addSpaceNode $spaceReference $siblings) 290 290 #set ($spaceId = $services.model.serialize($spaceReference, 'default')) 291 - #set ($spaceNodeId = "space:$spaceId") 292 292 #set ($hasSpaceAdmin = $services.security.authorization.hasAccess('admin', $spaceReference)) 293 293 #set ($canViewSpace = $services.security.authorization.hasAccess('view', $spaceReference)) 294 294 #if ($docTreeConfig.showTerminalDocuments) ... ... @@ -296,21 +296,10 @@ 296 296 #set ($hasChildren = true) 297 297 #else 298 298 ## We display only the nested spaces. This space might contain only documents. 299 - #set ($hasChildren = $tree.getChildCount($space NodeId) > 0)262 + #set ($hasChildren = $tree.getChildCount("space:$spaceId") > 0) 300 300 #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 312 312 #set ($discard = $siblings.add({ 313 - 'id': $space NodeId,265 + 'id': "space:$spaceId", 314 314 'text': $spaceReference.name, 315 315 'icon': 'fa fa-folder-o', 316 316 'iconOpened': 'fa fa-folder-open-o', ... ... @@ -328,9 +328,6 @@ 328 328 'createDocumentURL': $xwiki.getURL($spaceReference, 'create', $NULL), 329 329 'deleteURL': $xwiki.getURL($spaceReference, 'deletespace', $NULL) 330 330 }, 331 - 'state': { 332 - 'opened': $isOpened 333 - }, 334 334 'a_attr': { 335 335 'href': $xwiki.getURL($spaceReference) 336 336 } ... ... @@ -356,7 +356,6 @@ 356 356 357 357 #macro (addDocumentNode $documentReference $siblings) 358 358 #set ($documentId = $services.model.serialize($documentReference, 'default')) 359 - #set ($docNodeId = "document:$documentId") 360 360 #set ($label = $documentReference.name) 361 361 #if (!$docTreeConfig.showSpaces && 362 362 $documentReference.name == $services.model.getEntityReference('DOCUMENT', 'default').name) ... ... @@ -373,20 +373,9 @@ 373 373 #set ($label = $plainTitle) 374 374 #end 375 375 #end 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 324 + #set ($hasChildren = $tree.getChildCount("document:$documentId") > 0) 388 388 #set ($discard = $siblings.add({ 389 - 'id': $docNodeId,326 + 'id': "document:$documentId", 390 390 'text': $label, 391 391 'icon': 'fa fa-file-o', 392 392 'children': $hasChildren, ... ... @@ -401,9 +401,6 @@ 401 401 'canCopy': $canViewDoc, 402 402 'createDocumentURL': $xwiki.getURL($documentReference, 'create', $NULL) 403 403 }, 404 - 'state': { 405 - 'opened': $isOpened 406 - }, 407 407 'a_attr': { 408 408 'href': $xwiki.getURL($documentReference) 409 409 } ... ... @@ -418,18 +418,14 @@ 418 418 #end 419 419 420 420 #macro (addAddDocumentNode $documentReference $siblings) 421 - ## FIXME: This URL is wrong, it should use the $documentReference as the parent for creation of the node: 422 - ## the reference is already an existing doc, so it shouldn't be the one used for creation. 423 423 #set ($discard = $siblings.add({ 424 424 'id': "addDocument:$services.model.serialize($documentReference, 'default')", 425 - 'text': $services.localization.render('index.documentTree.addDocument'),357 + 'text': 'New page...', 426 426 'icon': 'fa fa-plus-circle', 427 427 'children': false, 428 428 'data': { 429 429 'type': 'addDocument', 430 - 'validChildren': [], 431 - 'hasContextMenu': true, 432 - 'canRename': true 362 + 'validChildren': [] 433 433 }, 434 434 'a_attr': { 435 435 'href': $xwiki.getURL($documentReference, 'create') ... ... @@ -1192,7 +1192,6 @@ 1192 1192 #macro (searchAttachmentsSolr $text $limit $return) 1193 1193 #set ($params = [ 1194 1194 'fq=type:ATTACHMENT', 1195 - 'fq=locale:*', 1196 1196 'qf=filename^4 attcontent', 1197 1197 'fl=type wiki spaces name filename' 1198 1198 ])