Changes for page Documents Macro
Last modified by Sebastian Marsching on 2025/01/05 22:30
From version 3.1
edited by Sebastian Marsching
on 2022/08/02 11:52
on 2022/08/02 11:52
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-index-ui/14.6]
To version 5.1
edited by Sebastian Marsching
on 2025/01/05 22:30
on 2025/01/05 22:30
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-index-ui/16.10.2]
Summary
-
Objects (3 modified, 1 added, 0 removed)
Details
- XWiki.WikiMacroClass[0]
-
- Macro code
-
... ... @@ -1,61 +1,59 @@ 1 1 {{velocity}} 2 -#if ("$!xcontext.macro.params.columns" != "") 3 - #set ($ collist= [])2 +#if ("$!xcontext.macro.params.columns" != "") 3 + #set ($properties = []) 4 4 #foreach ($colname in $xcontext.macro.params.columns.split(',')) 5 - #set ($discard = $ collist.add($colname.trim()))5 + #set ($discard = $properties.add($colname.trim())) 6 6 #end 7 7 #else 8 - #set($ collist= ['doc.title', 'doc.location', 'doc.date', 'doc.author'])8 + #set ($properties = ['doc.title', 'doc.location', 'doc.date', 'doc.author']) 9 9 #end 10 -#set($colprops = { 11 - 'doc.title' : { 'size' : 30, 'link' : 'view' }, 12 - 'doc.location' : { 'html': true }, 13 - 'doc.fullName' : { 'size' : 30, 'link' : 'view' }, 14 - 'doc.name' : { 'size' : 30, 'link' : 'view' }, 15 - 'doc.space' : { 'link' : 'space' }, 16 - 'doc.author' : { 'link' : 'author' } 10 +#set ($sourceParameters = { 11 + 'translationPrefix' : 'platform.index.' 17 17 }) 18 -#set($options = { 19 - 'translationPrefix' : 'platform.index.', 20 - 'rowCount' : $xcontext.macro.params.count, 21 - 'description' : 'This table lists documents found on this wiki based on passed criteria. The columns can be sorted and some can be filtered.' 22 -}) 23 -#if ("$!xcontext.macro.params.space" != "") 24 - #set ($extraParams = "&space=$escapetool.url($xcontext.macro.params.space)") 13 +#if ("$!xcontext.macro.params.space" != "") 14 + #set ($discard = $sourceParameters.put('space', $xcontext.macro.params.space)) 25 25 #end 26 -#if ("$!xcontext.macro.params.location" != "") 27 - #set ($ extraParams="$!{extraParams}&location=$escapetool.url($xcontext.macro.params.location)")16 +#if ("$!xcontext.macro.params.location" != "") 17 + #set ($discard = $sourceParameters.put('location', $xcontext.macro.params.location)) 28 28 #end 29 -#if ("$!xcontext.macro.params.parent" != "") 30 - #set ($ extraParams="$!{extraParams}&parent=$escapetool.url($xcontext.macro.params.parent)")19 +#if ("$!xcontext.macro.params.parent" != "") 20 + #set ($discard = $sourceParameters.put('parent', $xcontext.macro.params.parent)) 31 31 #end 32 -#if ("$!extraParams" != "") 33 - #set($discard = $options.put('extraParams', $extraParams)) 34 -#end 35 -#if(!$isGuest && $xcontext.macro.params.actions == "true") 36 - #set($discard = $collist.add('_actions')) 37 - #set($discard = $colprops.put('_actions', { 38 - 'actions': ['copy', 'rename', 'rights', 'delete'], 39 - 'filterable': false, 40 - 'sortable': false 41 - })) 42 -#end 22 +#set ($propertyDescriptors = []) 43 43 #if ("$!services.like" != "") 44 - #set($discard = $collist.add('_likes')) 45 45 ## We can't make it sortable or filterable right now since it's not stored in DB. 46 - #set($discard = $colprops.put('_likes', { 47 - 'filterable': false, 48 - 'sortable': false 49 - })) 25 + #set ($discard = $propertyDescriptors.add({ 'id': '_likes', 'sortable': false, 'filterable': false })) 26 + #set ($discard = $properties.add('_likes')) 50 50 #end 51 -#if ($collist.contains('doc.location')) 52 - #set ($discard = $options.put('selectedColumn','doc.location')) 28 +#if(!$isGuest && $xcontext.macro.params.actions == "true") 29 + #set ($discard = $propertyDescriptors.add({ 'id': '_actions', 'displayer': { 'id': 'actions', 'actions': ['copy', 'rename', 'rights', 'delete'] }})) 30 + #set ($discard = $properties.add('_actions')) 53 53 #end 32 +#set ($liveDataConfig = {'meta': {'propertyDescriptors': $propertyDescriptors}}) 54 54 #if ("$!xcontext.macro.params.id" != "") 55 - #set ($liveta bleId = $xcontext.macro.params.id)34 + #set ($livedataId = $xcontext.macro.params.id) 56 56 #else 57 57 ## TODO: Improve this since we could have several livetables on the same page with same ids 58 - #set ($liveta bleId = "documents-$mathtool.random(1, 1000)")37 + #set ($livedataId = "documents-$mathtool.random(1, 1000)") 59 59 #end 60 -#livetable($livetableId $collist $colprops $options) 39 + 40 +#set ($livedataId = $services.rendering.escape($livedataId, 'xwiki/2.1')) 41 +#set ($description = '') 42 +#if ("$!xcontext.macro.params.description" != '') 43 + #set ($description = $services.rendering.escape($xcontext.macro.params.description, 'xwiki/2.1')) 44 +#end 45 +#set ($limit = '') 46 +#if ("$!xcontext.macro.params.count" != '') 47 + #set ($limit = $services.rendering.escape($xcontext.macro.params.count, 'xwiki/2.1')) 48 +#end 49 +#set ($propertiesStr = $services.rendering.escape($stringtool.join($properties, ','), 'xwiki/2.1')) 50 +{{liveData 51 + id="$livedataId" 52 + properties="$propertiesStr" 53 + source="liveTable" 54 + sourceParameters="$escapetool.url($sourceParameters)" 55 + #if ($description != '')description="$description"#end 56 + #if ($properties.contains('doc.location'))sort="doc.location"#end 57 + #if ($limit != '')limit="$limit"#end 58 +}}$jsontool.serialize($liveDataConfig){{/liveData}} 61 61 {{/velocity}} - Macro description
-
... ... @@ -1,1 +1,1 @@ 1 -Displays a list of documents in a Liveta ble1 +Displays a list of documents in a Live Data
- XWiki.WikiMacroParameterClass[3]
-
- Parameter description
-
... ... @@ -1,1 +1,1 @@ 1 -Liveta bleid1 +Live Data id
- XWiki.WikiMacroParameterClass[5]
-
- Parameter description
-
... ... @@ -1,1 +1,1 @@ 1 -Specifies the list of columnsto display(e.g. "doc.name,doc.space"). If not specified then the defaultcolumnlistofused ("doc.name,doc.space,doc.date,doc.author")1 +Specifies the list of properties (e.g., "doc.name,doc.space"). If not specified then the default properties list is used ("doc.name,doc.space,doc.date,doc.author")
- XWiki.WikiMacroParameterClass[7]
-
- Parameter name
-
... ... @@ -1,0 +1,1 @@ 1 +description - Parameter description
-
... ... @@ -1,0 +1,1 @@ 1 +Provide a description of the list of documents - Parameter mandatory
-
... ... @@ -1,0 +1,1 @@ 1 +No