Changes for page Documents Macro
Last modified by Ludovic Dubost on 2024/07/22 15:50
From version 6.1
edited by Ludovic Dubost
on 2016/10/24 00:53
on 2016/10/24 00:53
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-index-ui-8.2.1]
To version 16.1
edited by Ludovic Dubost
on 2024/07/22 15:50
on 2024/07/22 15:50
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-index-ui/16.5.0]
Summary
-
Objects (3 modified, 1 added, 0 removed)
Details
- XWiki.WikiMacroClass[0]
-
- Macro code
-
... ... @@ -1,47 +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' : { 'type' : 'text' , 'size' : 30, 'link' : 'view', 'filterable': false, 'sortable': false }, 12 - 'doc.location' : { 'type': 'text', 'filterable': true, 'html': true}, 13 - 'doc.fullName' : { 'type' : 'text' , 'size' : 30, 'link' : 'view' }, 14 - 'doc.name' : { 'type' : 'text' , 'size' : 30, 'link' : 'view' }, 15 - 'doc.space' : { 'type' : 'text', 'link' : 'space' }, 16 - 'doc.date' : { 'type' : 'date' }, 17 - 'doc.author' : { 'type' : 'text', 'link' : 'author' } 10 +#set ($sourceParameters = { 11 + 'translationPrefix' : 'platform.index.' 18 18 }) 19 -#set($options = { 20 - 'translationPrefix' : 'platform.index.', 21 - 'rowCount' : $xcontext.macro.params.count, 22 - 'description' : 'This table lists documents found on this wiki based on passed criteria. The columns can be sorted and some can be filtered.' 23 -}) 24 -#if ("$!xcontext.macro.params.space" != "") 25 - #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)) 26 26 #end 27 -#if ("$!xcontext.macro.params.location" != "") 28 - #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)) 29 29 #end 30 -#if ("$!xcontext.macro.params.parent" != "") 31 - #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)) 32 32 #end 33 -#if ("$!extraParams" != "") 34 - #set($discard = $options.put('extraParams', $extraParams)) 22 +#set ($propertyDescriptors = []) 23 +#if ("$!services.like" != "") 24 + ## We can't make it sortable or filterable right now since it's not stored in DB. 25 + #set ($discard = $propertyDescriptors.add({ 'id': '_likes', 'sortable': false, 'filterable': false })) 26 + #set ($discard = $properties.add('_likes')) 35 35 #end 36 36 #if(!$isGuest && $xcontext.macro.params.actions == "true") 37 - #set($discard = $ collist.add('_actions'))38 - #set($discard = $ colprops.put('_actions', { 'actions' : ['copy', 'rename', 'rights', 'delete'] }))29 + #set ($discard = $propertyDescriptors.add({ 'id': '_actions', 'displayer': { 'id': 'actions', 'actions': ['copy', 'rename', 'rights', 'delete'] }})) 30 + #set ($discard = $properties.add('_actions')) 39 39 #end 32 +#set ($liveDataConfig = {'meta': {'propertyDescriptors': $propertyDescriptors}}) 40 40 #if ("$!xcontext.macro.params.id" != "") 41 - #set ($liveta bleId = $xcontext.macro.params.id)34 + #set ($livedataId = $xcontext.macro.params.id) 42 42 #else 43 43 ## TODO: Improve this since we could have several livetables on the same page with same ids 44 - #set ($liveta bleId = "documents-$mathtool.random(1, 1000)")37 + #set ($livedataId = "documents-$mathtool.random(1, 1000)") 45 45 #end 46 -#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}} 47 47 {{/velocity}} - Default category
-
... ... @@ -1,1 +1,0 @@ 1 -Content - Cached
-
... ... @@ -1,0 +1,1 @@ 1 +No - 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 - Asynchronous rendering
-
... ... @@ -1,0 +1,1 @@ 1 +No - Default categories
-
... ... @@ -1,0 +1,1 @@ 1 +Content
- 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