Änderungen von Dokument Content Report Table Macro
Zuletzt geändert von xwikiadmin am 2024/06/24 14:35
Von Version 2.1
bearbeitet von xwikiadmin
am 2022/08/11 16:36
am 2022/08/11 16:36
Änderungskommentar:
Migrated property [defaultCategories] from class [XWiki.WikiMacroClass]
Auf Version 5.1
bearbeitet von xwikiadmin
am 2024/06/24 14:35
am 2024/06/24 14:35
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.19.4]
Zusammenfassung
-
Objekte (3 geändert, 0 hinzugefügt, 0 gelöscht)
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) 1 +Label(s) to report on
- XWiki.WikiMacroParameterClass[1]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,1 @@ 1 -Space(s) 1 +Space(s) to report on