Changes for page Space Index

Last modified by Ecaterina Valica on 2023/04/25 09:20

From version 8.1
edited by Ecaterina Valica
on 2013/10/22 14:40
Change comment: Import
To version 9.1
edited by Ecaterina Valica
on 2016/11/17 15:21
Change comment: Install extension [org.xwiki.platform:xwiki-platform-index-ui-8.2.1]

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,9 @@
1 1  {{velocity}}
2 2  #if("$!request.space" != "") #set($space=$request.space) #else #set($space = $doc.space) #end
3 3  $services.localization.render('platform.index.spaceIndexDescription', [$space])
4 +## Since we display the space index, we do not display page titles and locations, but the old columns name and space
5 +## (old behavior consistent with this old macro)...
4 4  
5 -{{documents space="$space.replaceAll('["~]', '~$0')" id="spaceindex"/}}
7 +{{documents space="$space.replaceAll('["~]', '~$0')" id="spaceindex" columns="doc.name, doc.space, doc.date, doc.author"/}}
8 +#set($docextras=[])
6 6  {{/velocity}}
XWiki.WikiMacroClass[0]
Macro code
... ... @@ -1,6 +1,6 @@
1 1  {{velocity}}
2 - ## TODO: add me a parameter to specify the style, list or livetable
3 - ## get the number of documents to display
2 + ## TODO: add a parameter to specify the style, list or livetable
3 + ## Get the number of documents to display
4 4   #set ($limit = $xcontext.macro.params.get('count'))
5 5   #if ("$!limit" == '')
6 6   ## 100 documents displayed by default if no value is specified
... ... @@ -7,13 +7,26 @@
7 7   #set ($limit = '100')
8 8   #end
9 9   #set ($limit = $mathtool.toInteger($limit))
10 - ## get the space to display the documents for
10 + ## Compute the XWQL portion related to sorting, based on the passed "sort" parameter
11 + ## Valid values are "creationDate", "modificationDate" and "docName"
12 + #set ($sort = $xcontext.macro.params.get('sort'))
13 + #if ("$sort" == 'docName')
14 + ## Sorting alphabetically
15 + #set ($sortQuery = 'doc.name asc')
16 + #elseif ("$sort" == 'modificationDate')
17 + ## Sorting by update date
18 + #set ($sortQuery = 'doc.contentUpdateDate desc')
19 + #else
20 + ## Sort by creation date by default
21 + #set ($sortQuery = 'doc.creationDate desc')
22 + #end
23 + ## Get the space to display the documents for
11 11   #set ($spaceParam = $doc.space)
12 12   #set ($spaceMacroParam = $xcontext.macro.params.get('space'))
13 13   #if ("$!spaceMacroParam" != '')
14 14   #set ($spaceParam = $spaceMacroParam)
15 15   #end
16 - #set ($docNames = $services.query.hql('where doc.space=? order by doc.creationDate desc').setLimit($limit).bindValues([${spaceParam}]).execute())
29 + #set ($docNames = $services.query.hql("where doc.space=? order by $sortQuery").addFilter('currentlanguage').addFilter('hidden').setLimit($limit).bindValues([${spaceParam}]).execute())
17 17   {{html}}
18 18   #displayDocumentList($docNames false [])
19 19   ## Note: we pass an empty blacklistedSpaces list since we are used as a space dashboard, not a global dashboard
Macro description
... ... @@ -1,1 +1,1 @@
1 -Lists the documents in a space.
1 +Lists documents in a space.
XWiki.WikiMacroParameterClass[2]
Parameter default value
... ... @@ -1,0 +1,1 @@
1 +creationDate
Parameter description
... ... @@ -1,0 +1,5 @@
1 +Optional parameter to choose the sorting of the list of document.
2 +Value must be:
3 +- creationDate sort by creation date (default)
4 +- modificationDate sort by update date
5 +- or docName sort alphabetically
Parameter mandatory
... ... @@ -1,0 +1,1 @@
1 +No
Parameter name
... ... @@ -1,0 +1,1 @@
1 +sort