Änderungen von Dokument Content Report Table Macro

Zuletzt geändert von xwikiadmin am 2024/06/24 14:35

Von Version 1.1
bearbeitet von xwikiadmin
am 2022/02/23 10:52
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros/1.2.1]
Auf Version 5.1
bearbeitet von xwikiadmin
am 2024/06/24 14:35
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.19.4]

Zusammenfassung

Details

XWiki.WikiMacroClass[0]
Makro-Code
... ... @@ -1,45 +1,58 @@
1 -{{velocity}}
2 -## Used parameters :
3 -#set($labels = $wikimacro.parameters.get('labels'))
4 -#set($spaces = $wikimacro.parameters.get('spaces'))
5 -#set($maxResults = $wikimacro.parameters.get('maxResults'))
6 -#if("$!maxResults" == '')
7 - #set($maxResults = 20)
8 -#end
9 -## Searching for the matching pages
10 -#set($statement = 'select distinct doc.fullName, doc.title, doc.creator, doc.date from XWikiDocument doc, BaseObject as obj, DBStringListProperty as prop
11 - join prop.list item where obj.className = :className and obj.name = doc.fullName and obj.id = prop.id.id
12 - and prop.id.name = :propName and lower(item) in (:labelsList)')
13 -#set($lowerCaseLabelList = [])
14 -#foreach($label in $labels.split(','))
15 - #set($discard = $lowerCaseLabelList.add($label.toLowerCase()))
16 -#end
17 -#set($params = {
18 - 'className': 'XWiki.TagClass',
19 - 'propName': 'tags',
20 - 'labelsList': $lowerCaseLabelList
21 -})
22 -#if("$!spaces" != '')
23 - #set ($statement = $statement + ' and (')
24 - #foreach($space in $spaces.split('(?<!\\\\), '))
25 - #if($foreach.index > 0)
26 - #set($statement = $statement + ' or ')
1 +{{velocity output="false"}}
2 +#macro (executeMacro)
3 + ## Used parameters :
4 + #set($labels = $wikimacro.parameters.get('labels'))
5 + #set($spaces = $wikimacro.parameters.get('spaces'))
6 + #set($maxResults = $wikimacro.parameters.get('maxResults'))
7 + #if("$!maxResults" == '')
8 + #set($maxResults = 20)
9 + #end
10 + ## Searching for the matching pages
11 + #set($statement = 'select distinct doc.fullName, doc.title, doc.creator, doc.date from XWikiDocument doc, BaseObject as obj, DBStringListProperty as prop
12 + join prop.list item where obj.className = :className and obj.name = doc.fullName and obj.id = prop.id.id
13 + and prop.id.name = :propName and lower(item) in (:labelsList)')
14 + #set($lowerCaseLabelList = [])
15 + #foreach($label in $labels.split(','))
16 + #set($discard = $lowerCaseLabelList.add($label.toLowerCase()))
17 + #end
18 + #set($params = {
19 + 'className': 'XWiki.TagClass',
20 + 'propName': 'tags',
21 + 'labelsList': $lowerCaseLabelList
22 + })
23 + #if("$!spaces" != '')
24 + #set ($statement = $statement + ' and (')
25 + #foreach($space in $spaces.split('(?<!\\\\), '))
26 + #if($foreach.index > 0)
27 + #set($statement = $statement + ' or ')
28 + #end
29 + #set($statement = $statement + "doc.space like :space$foreach.index")
30 + #set($discard = $params.put("space$foreach.index", $space.replaceAll('([%_!])', '!$1').concat('%')))
27 27   #end
28 - #set($statement = $statement + "doc.space like :space$foreach.index")
29 - #set($discard = $params.put("space$foreach.index", $space.replaceAll('([%_!])', '!$1').concat('%')))
32 + #set($statement = $statement + ')')
30 30   #end
31 - #set($statement = $statement + ')')
34 + #set ($statement = $statement + ' order by doc.date desc')
35 + #set($query = $services.query.hql($statement))
36 + #set($discard = $query.bindValues($params))
37 + #if("$!maxResults" != '')
38 + #set($discard = $query.setLimit($numbertool.toNumber($maxResults)).addFilter('currentlanguage'))
39 + #end
40 + #set($results = $query.execute())
41 + ## Table display
42 + |=$services.localization.render('titlefield')|=$services.localization.render('creator')|=$services.localization.render('contentReportTable.header.modified')
43 + #foreach($result in $results)
44 + |[[$result.get(1)>>$result.get(0)]]|{{html clean="false"}}$xwiki.getUserName($result.get(2), true){{/html}}|$datetool.format('MMM dd, yyyy', $result.get(3))
45 + #end
32 32  #end
33 -#set ($statement = $statement + ' order by doc.date desc')
34 -#set($query = $services.query.hql($statement))
35 -#set($discard = $query.bindValues($params))
36 -#if("$!maxResults" != '')
37 - #set($discard = $query.setLimit($mathtool.toNumber($maxResults)).addFilter('currentlanguage'))
47 +{{/velocity}}
48 +
49 +{{velocity}}
50 +## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right
51 +## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that
52 +## don't have view right on those pages.
53 +#if ($services.promacrolicensing.hasLicensureForEntity($xcontext.macro.doc.documentReference))
54 + #executeMacro
55 +#else
56 + {{missingLicenseMessage extensionName="proMacros.extension.name"/}}
38 38  #end
39 -#set($results = $query.execute())
40 -## Table display
41 -|=$services.localization.render('titlefield')|=$services.localization.render('creator')|=$services.localization.render('contentReportTable.header.modified')
42 -#foreach($result in $results)
43 - |[[$result.get(1)>>$result.get(0)]]|{{html clean="false"}}$xwiki.getUserName($result.get(2), true){{/html}}|$datetool.format('MMM dd, yyyy', $result.get(3))
44 -#end
45 45  {{/velocity}}
Standardkategorie
... ... @@ -1,1 +1,0 @@
1 -content
XWiki.WikiMacroParameterClass[0]
Parameter-Beschreibung
... ... @@ -1,1 +1,1 @@
1 -Label(s) to report on
1 +Label(s) to report on
XWiki.WikiMacroParameterClass[1]
Parameter-Beschreibung
... ... @@ -1,1 +1,1 @@
1 -Space(s) to report on
1 +Space(s) to report on