Изменения документа Document Tree Macros

Редактировал(а) Георгий Глущенко 2026/07/02 17:46

От версии 9.1
отредактировано Георгий Глущенко
на 2026/04/21 16:00
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/18.2.1]
К версии 10.1
отредактировано Георгий Глущенко
на 2026/07/02 17:46
Изменить комментарий: Install extension [org.xwiki.platform:xwiki-platform-index-tree-macro/18.5.0]

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -30,7 +30,9 @@
30 30   #end
31 31   #end
32 32   ## Handle relative references
33 - #makeNodeReferencesAbsolute($docTreeConfig ['root', 'openTo'])
33 + #foreach ($key in ['root', 'openTo'])
34 + #set ($docTreeConfig[$key] = $services.index.tree.normalizeEntityTreeNodeId($docTreeConfig[$key]))
35 + #end
34 34   ## FIXME: The 'orderBy' property of the tree API is shared by all tree node types, which means we can't indicate a
35 35   ## different sort field per tree node type (e.g. sort wiki nodes by name and document nodes by last modification
36 36   ## date). At the same time, this property is currently taken into account only for sorting document tree nodes, so for
... ... @@ -56,29 +56,6 @@
56 56   #set ($discard = $tree.properties.putAll($docTreeConfig))
57 57  #end
58 58  
59 -#set ($documentPseudoNodeTypes = ['translations', 'attachments', 'classProperties', 'objects', 'addDocument',
60 - 'addAttachment'])
61 -#macro (makeNodeReferencesAbsolute $map $keys)
62 - #foreach ($key in $keys)
63 - #set ($nodeId = $map.get($key))
64 - #set ($parts = $nodeId.split(':', 2))
65 - #if ($parts && $parts.size() == 2)
66 - #set ($nodeType = $parts[0].toLowerCase())
67 - #set ($nodeReference = $parts[1])
68 - #set ($entityType = $nodeType)
69 - #if ($documentPseudoNodeTypes.contains($nodeType))
70 - #set ($entityType = 'document')
71 - #end
72 - #set ($discard = "#evaluate(""${escapetool.h}set (${escapetool.d}entityReference =
73 - ${escapetool.d}services.model.resolve$stringtool.capitalize($entityType)(${escapetool.d}nodeReference))"")")
74 - #if ($entityReference)
75 - #set ($nodeReference = $services.model.serialize($entityReference, 'default'))
76 - #end
77 - #set ($discard = $map.put($key, "$nodeType:$nodeReference"))
78 - #end
79 - #end
80 -#end
81 -
82 82  #macro (handleDocumentTreeRequest)
83 83   #if ($request.action)
84 84   #if ($services.csrf.isTokenValid($request.form_token))
... ... @@ -173,8 +173,39 @@
173 173   #if ($parts && $parts.size() == 2)
174 174   #set ($nodeType = $parts[0])
175 175   #set ($nodeReference = $parts[1])
176 - #set ($discard = "#evaluate(""${escapetool.h}maybeAdd$stringtool.capitalize($nodeType)Node(
177 - ${escapetool.d}nodeReference ${escapetool.d}siblings ${escapetool.d}placeholder)"")")
155 + #if ($nodeType == 'farm')
156 + #maybeAddFarmNode($nodeReference $siblings)
157 + #elseif ($nodeType == 'wiki')
158 + #maybeAddWikiNode($nodeReference $siblings $placeholder)
159 + #elseif ($nodeType == 'space')
160 + #maybeAddSpaceNode($nodeReference $siblings $placeholder)
161 + #elseif ($nodeType == 'document')
162 + #maybeAddDocumentNode($nodeReference $siblings $placeholder)
163 + #elseif ($nodeType == 'addDocument')
164 + #maybeAddAddDocumentNode($nodeReference $siblings)
165 + #elseif ($nodeType == 'translations')
166 + #maybeAddTranslationsNode($nodeReference $siblings)
167 + #elseif ($nodeType == 'translation')
168 + #maybeAddTranslationNode($nodeReference $siblings)
169 + #elseif ($nodeType == 'attachments')
170 + #maybeAddAttachmentsNode($nodeReference $siblings)
171 + #elseif ($nodeType == 'attachment')
172 + #maybeAddAttachmentNode($nodeReference $siblings)
173 + #elseif ($nodeType == 'addAttachment')
174 + #maybeAddAddAttachmentNode($nodeReference $siblings)
175 + #elseif ($nodeType == 'classProperties')
176 + #maybeAddClassPropertiesNode($nodeReference $siblings)
177 + #elseif ($nodeType == 'classProperty')
178 + #maybeAddClassPropertyNode($nodeReference $siblings)
179 + #elseif ($nodeType == 'objects')
180 + #maybeAddObjectsNode($nodeReference $siblings)
181 + #elseif ($nodeType == 'objectsOfType')
182 + #maybeAddObjectsOfTypeNode($nodeReference $siblings)
183 + #elseif ($nodeType == 'object')
184 + #maybeAddObjectNode($nodeReference $siblings)
185 + #elseif ($nodeType == 'objectProperty')
186 + #maybeAddObjectPropertyNode($nodeReference $siblings)
187 + #end
178 178   #end
179 179  #end
180 180