Änderungen von Dokument Content Report Table Macro

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

Von Version 3.1
bearbeitet von xwikiadmin
am 2023/04/25 10:54
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros/1.7.1]
Auf Version 1.1
bearbeitet von xwikiadmin
am 2022/02/23 10:52
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros/1.2.1]

Zusammenfassung

Details

XWiki.WikiMacroClass[0]
Makro-Code
... ... @@ -1,62 +1,45 @@
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('%')))
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 ')
31 31   #end
32 - #set($statement = $statement + ')')
28 + #set($statement = $statement + "doc.space like :space$foreach.index")
29 + #set($discard = $params.put("space$foreach.index", $space.replaceAll('([%_!])', '!$1').concat('%')))
33 33   #end
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($mathtool.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
31 + #set($statement = $statement + ')')
46 46  #end
47 -{{/velocity}}
48 -
49 -{{include reference="Licenses.Code.VelocityMacros"/}}
50 -
51 -{{velocity}}
52 -## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right
53 -## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that
54 -## don't have view right on those pages.
55 -#if ($services.licensing.licensor.hasLicensureForEntity($xcontext.macro.doc.documentReference))
56 - #executeMacro
57 -#else
58 - {{error}}
59 - #getMissingLicenseMessage('proMacros.extension.name')
60 - {{/error}}
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'))
61 61  #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
62 62  {{/velocity}}