Changes for page Documents Macro

From version 3.1
edited by Monika Leung
on 2025/07/12 16:23
Change comment: Migrated property [featureMandatory] from class [XWiki.WikiMacroParameterClass]
To version 1.1
edited by superadmin
on 2025/02/21 15:00
Change comment: Install extension [org.xwiki.platform:xwiki-platform-index-ui/15.10.11]

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.leung
1 +XWiki.superadmin
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,59 +1,61 @@
1 1  {{velocity}}
2 -#if ("$!xcontext.macro.params.columns" != "")
3 - #set ($properties = [])
2 +#if ("$!xcontext.macro.params.columns" != "")
3 + #set ($collist = [])
4 4   #foreach ($colname in $xcontext.macro.params.columns.split(','))
5 - #set ($discard = $properties.add($colname.trim()))
5 + #set ($discard = $collist.add($colname.trim()))
6 6   #end
7 7  #else
8 - #set ($properties = ['doc.title', 'doc.location', 'doc.date', 'doc.author'])
8 + #set($collist = ['doc.title', 'doc.location', 'doc.date', 'doc.author'])
9 9  #end
10 -#set ($sourceParameters = {
11 - 'translationPrefix' : 'platform.index.'
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' }
12 12  })
13 -#if ("$!xcontext.macro.params.space" != "")
14 - #set ($discard = $sourceParameters.put('space', $xcontext.macro.params.space))
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)")
15 15  #end
16 -#if ("$!xcontext.macro.params.location" != "")
17 - #set ($discard = $sourceParameters.put('location', $xcontext.macro.params.location))
26 +#if ("$!xcontext.macro.params.location" != "")
27 + #set ($extraParams = "$!{extraParams}&location=$escapetool.url($xcontext.macro.params.location)")
18 18  #end
19 -#if ("$!xcontext.macro.params.parent" != "")
20 - #set ($discard = $sourceParameters.put('parent', $xcontext.macro.params.parent))
29 +#if ("$!xcontext.macro.params.parent" != "")
30 + #set ($extraParams = "$!{extraParams}&parent=$escapetool.url($xcontext.macro.params.parent)")
21 21  #end
22 -#set ($propertyDescriptors = [])
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
23 23  #if ("$!services.like" != "")
44 + #set($discard = $collist.add('_likes'))
24 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'))
46 + #set($discard = $colprops.put('_likes', {
47 + 'filterable': false,
48 + 'sortable': false
49 + }))
27 27  #end
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'))
51 +#if ($collist.contains('doc.location'))
52 + #set ($discard = $options.put('selectedColumn','doc.location'))
31 31  #end
32 -#set ($liveDataConfig = {'meta': {'propertyDescriptors': $propertyDescriptors}})
33 33  #if ("$!xcontext.macro.params.id" != "")
34 - #set ($livedataId = $xcontext.macro.params.id)
55 + #set ($livetableId = $xcontext.macro.params.id)
35 35  #else
36 36   ## TODO: Improve this since we could have several livetables on the same page with same ids
37 - #set ($livedataId = "documents-$mathtool.random(1, 1000)")
58 + #set ($livetableId = "documents-$mathtool.random(1, 1000)")
38 38  #end
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}}
60 +#livetable($livetableId $collist $colprops $options)
59 59  {{/velocity}}
Macro description
... ... @@ -1,1 +1,1 @@
1 -Displays a list of documents in a Live Data
1 +Displays a list of documents in a Livetable
XWiki.WikiMacroParameterClass[3]
Parameter description
... ... @@ -1,1 +1,1 @@
1 -Live Data id
1 +Livetable id
XWiki.WikiMacroParameterClass[5]
Parameter description
... ... @@ -1,1 +1,1 @@
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")
1 +Specifies the list of columns to display (e.g. "doc.name,doc.space"). If not specified then the default column list of used ("doc.name,doc.space,doc.date,doc.author")
XWiki.WikiMacroParameterClass[7]
Parameter description
... ... @@ -1,1 +1,0 @@
1 -Provide a description of the list of documents
Parameter mandatory
... ... @@ -1,1 +1,0 @@
1 -No
Parameter name
... ... @@ -1,1 +1,0 @@
1 -description

Interested in our testing services?

If you are interested and would like to receive more information, please send us an email and sign up for our newsletter to stay up-to-date.