Изменения документа Document Tree Macros
Редактировал(а) Андрей Ганьков 2025/07/06 04:36
От версии 6.1
отредактировано Андрей Ганьков
на 2025/07/06 04:36
на 2025/07/06 04:36
Изменить комментарий:
Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/17.5.0]
К версии 3.1
отредактировано Андрей Ганьков
на 2023/04/03 09:29
на 2023/04/03 09:29
Изменить комментарий:
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 ... ... @@ -205,7 +205,6 @@ 205 205 206 206 #macro (maybeAddFarmNode $nodeReference $siblings) 207 207 #set ($farmHomeReference = $services.model.resolveDocument('', 'default')) 208 - #set ($isOpened = $docTreeConfig.expandToLevel > 0) 209 209 #set ($discard = $siblings.add({ 210 210 'id': 'farm:*', 211 211 'text': 'Farm', ... ... @@ -215,9 +215,6 @@ 215 215 'type': 'farm', 216 216 'validChildren': ['wiki', 'pagination'] 217 217 }, 218 - 'state': { 219 - 'opened': $isOpened 220 - }, 221 221 'a_attr': { 222 222 'href': $xwiki.getURL($farmHomeReference) 223 223 } ... ... @@ -246,7 +246,6 @@ 246 246 #else 247 247 #set ($label = $wiki.id) 248 248 #end 249 - #set ($isOpened = $docTreeConfig.expandToLevel > 0) 250 250 #set ($discard = $siblings.add({ 251 251 'id': "wiki:$wiki.id", 252 252 'text': $label, ... ... @@ -258,9 +258,6 @@ 258 258 'validChildren': ['space', 'document', 'pagination'], 259 259 'canDelete': $canDeleteWiki 260 260 }, 261 - 'state': { 262 - 'opened': $isOpened 263 - }, 264 264 'a_attr': { 265 265 'href': $xwiki.getURL($wiki.mainPageReference) 266 266 } ... ... @@ -286,7 +286,6 @@ 286 286 287 287 #macro (addSpaceNode $spaceReference $siblings) 288 288 #set ($spaceId = $services.model.serialize($spaceReference, 'default')) 289 - #set ($nodeId = "space:$spaceId") 290 290 #set ($hasSpaceAdmin = $services.security.authorization.hasAccess('admin', $spaceReference)) 291 291 #set ($canViewSpace = $services.security.authorization.hasAccess('view', $spaceReference)) 292 292 #if ($docTreeConfig.showTerminalDocuments) ... ... @@ -294,21 +294,10 @@ 294 294 #set ($hasChildren = true) 295 295 #else 296 296 ## We display only the nested spaces. This space might contain only documents. 297 - #set ($hasChildren = $tree.getChildCount($ nodeId) > 0)262 + #set ($hasChildren = $tree.getChildCount("space:$spaceId") > 0) 298 298 #end 299 - #set ($isOpened = false) 300 - #if ("$!docTreeConfig.expandToLevel" != '') 301 - #set ($rootNode = "wiki:$services.wiki.currentWikiId") 302 - #if ("$!docTreeConfig.root" != '') 303 - #set ($rootNode = "wiki:$services.wiki.currentWikiId") 304 - #else 305 - #set ($rootNode = $docTreeConfig.root) 306 - #end 307 - #set ($rootDistance = $tree.getPath($nodeId).size()) 308 - #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance)) 309 - #end 310 310 #set ($discard = $siblings.add({ 311 - 'id': $ nodeId,265 + 'id': "space:$spaceId", 312 312 'text': $spaceReference.name, 313 313 'icon': 'fa fa-folder-o', 314 314 'iconOpened': 'fa fa-folder-open-o', ... ... @@ -326,9 +326,6 @@ 326 326 'createDocumentURL': $xwiki.getURL($spaceReference, 'create', $NULL), 327 327 'deleteURL': $xwiki.getURL($spaceReference, 'deletespace', $NULL) 328 328 }, 329 - 'state': { 330 - 'opened': $isOpened 331 - }, 332 332 'a_attr': { 333 333 'href': $xwiki.getURL($spaceReference) 334 334 } ... ... @@ -354,7 +354,6 @@ 354 354 355 355 #macro (addDocumentNode $documentReference $siblings) 356 356 #set ($documentId = $services.model.serialize($documentReference, 'default')) 357 - #set ($nodeId = "document:$documentId") 358 358 #set ($label = $documentReference.name) 359 359 #if (!$docTreeConfig.showSpaces && 360 360 $documentReference.name == $services.model.getEntityReference('DOCUMENT', 'default').name) ... ... @@ -371,20 +371,9 @@ 371 371 #set ($label = $plainTitle) 372 372 #end 373 373 #end 374 - #set ($hasChildren = $tree.getChildCount($nodeId) > 0) 375 - #set ($isOpened = false) 376 - #if ("$!docTreeConfig.expandToLevel" != '') 377 - #set ($rootNode = "wiki:$services.wiki.currentWikiId") 378 - #if ("$!docTreeConfig.root" != '') 379 - #set ($rootNode = "wiki:$services.wiki.currentWikiId") 380 - #else 381 - #set ($rootNode = $docTreeConfig.root) 382 - #end 383 - #set ($rootDistance = $tree.getPath($nodeId).size()) 384 - #set ($isOpened = ($rootDistance != -1 && $docTreeConfig.expandToLevel >= $rootDistance)) 385 - #end 324 + #set ($hasChildren = $tree.getChildCount("document:$documentId") > 0) 386 386 #set ($discard = $siblings.add({ 387 - 'id': $nodeId,326 + 'id': "document:$documentId", 388 388 'text': $label, 389 389 'icon': 'fa fa-file-o', 390 390 'children': $hasChildren, ... ... @@ -399,9 +399,6 @@ 399 399 'canCopy': $canViewDoc, 400 400 'createDocumentURL': $xwiki.getURL($documentReference, 'create', $NULL) 401 401 }, 402 - 'state': { 403 - 'opened': $isOpened 404 - }, 405 405 'a_attr': { 406 406 'href': $xwiki.getURL($documentReference) 407 407 } ... ... @@ -416,18 +416,14 @@ 416 416 #end 417 417 418 418 #macro (addAddDocumentNode $documentReference $siblings) 419 - ## FIXME: This URL is wrong, it should use the $documentReference as the parent for creation of the node: 420 - ## the reference is already an existing doc, so it shouldn't be the one used for creation. 421 421 #set ($discard = $siblings.add({ 422 422 'id': "addDocument:$services.model.serialize($documentReference, 'default')", 423 - 'text': $services.localization.render('index.documentTree.addDocument'),357 + 'text': 'New page...', 424 424 'icon': 'fa fa-plus-circle', 425 425 'children': false, 426 426 'data': { 427 427 'type': 'addDocument', 428 - 'validChildren': [], 429 - 'hasContextMenu': true, 430 - 'canRename': true 362 + 'validChildren': [] 431 431 }, 432 432 'a_attr': { 433 433 'href': $xwiki.getURL($documentReference, 'create') ... ... @@ -1190,7 +1190,6 @@ 1190 1190 #macro (searchAttachmentsSolr $text $limit $return) 1191 1191 #set ($params = [ 1192 1192 'fq=type:ATTACHMENT', 1193 - 'fq=locale:*', 1194 1194 'qf=filename^4 attcontent', 1195 1195 'fl=type wiki spaces name filename' 1196 1196 ])