Änderungen von Dokument Team
Zuletzt geändert von xwikiadmin am 2025/05/21 10:12
Von Version 1.1
bearbeitet von xwikiadmin
am 2023/03/07 16:26
am 2023/03/07 16:26
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros/1.7]
Auf Version 4.1
bearbeitet von xwikiadmin
am 2023/10/26 09:48
am 2023/10/26 09:48
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros/1.12]
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
-
Objekte (1 geändert, 1 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -4,6 +4,7 @@ 4 4 5 5 |= Parameter |= Name |= Description |= Default 6 6 | tag | {{translation key='rendering.macro.team.parameter.tag.name'/}} | {{translation key='rendering.macro.team.parameter.tag.description'/}} | 7 +| users | {{translation key='rendering.macro.team.parameter.users.name'/}} | {{translation key='rendering.macro.team.parameter.users.description'/}} | 7 7 | size | {{translation key='rendering.macro.team.parameter.size.name'/}} | {{translation key='rendering.macro.team.parameter.size.description'/}} | 60 8 8 | showUsernames | {{translation key='rendering.macro.team.parameter.showUsernames.name'/}} | {{translation key='rendering.macro.team.parameter.showUsernames.description'/}} | false 9 9 | letterAvatarBgColor | {{translation key='rendering.macro.team.parameter.letterAvatarBgColor.name'/}} | {{translation key='rendering.macro.team.parameter.letterAvatarBgColor.description'/}} | #0A6
- XWiki.WikiMacroClass[0]
-
- Makro-Code
-
... ... @@ -1,7 +1,4 @@ 1 -{{velocity}} 2 -#set($discard = $xwiki.ssx.use('xwiki:XWiki.Macros.Team')) 3 -#set($discard = $xwiki.jsx.use('xwiki:XWiki.Macros.Team')) 4 -#set($pictureList = {}) 1 +{{velocity output="false"}} 5 5 #macro(avatarInitials $name $size $letterAvatarBgColor $letterAvatarFontColor) 6 6 #set($escapedSize = $escapetool.xml($size)) 7 7 #set($escapedLetterAvatarFontColor = $escapetool.xml($letterAvatarFontColor)) ... ... @@ -12,7 +12,7 @@ 12 12 > 13 13 <span class="xwikiteam-avatar-initials-inner"> 14 14 <span class="xwikiteam-avatar-initials-letters" style="color: $escapedLetterAvatarFontColor"> 15 - #foreach($firstLetter in $name.toUpperCase().split("[\s-]"))$escapetool.xml($firstLetter.charAt(0))#end 12 + #foreach($firstLetter in $name.toUpperCase().split("[\s\[\]-]+"))$escapetool.xml($firstLetter.charAt(0))#end 16 16 </span> 17 17 </span> 18 18 </span> ... ... @@ -36,7 +36,7 @@ 36 36 #else 37 37 #set($escapedSize = $escapetool.xml($size)) 38 38 <img 39 - class='xwikiteam-avatar' 36 + class='xwikiteam-avatar fixedSize-$escapedSize' 40 40 src='$escapetool.xml($return.url)' 41 41 alt='$escapedDisplayUser' 42 42 title='$escapedDisplayUser' ... ... @@ -48,146 +48,192 @@ 48 48 </a> 49 49 </li> 50 50 #end 51 -#set($tag = $wikimacro.parameters.tag) 52 -#set($size = $wikimacro.parameters.size) 53 -#set($scope = $wikimacro.parameters.scope) 54 -#set($letterAvatarBgColor = $wikimacro.parameters.letterAvatarBgColor) 55 -#set($letterAvatarFontColor = $wikimacro.parameters.letterAvatarFontColor) 56 -#set($requireExternalAuth = $wikimacro.parameters.requireExternalAuth) 57 -#set($showUsernames = $wikimacro.parameters.showUsernames) 58 -#set($disableTools = $wikimacro.parameters.disableTools) 59 -#set($disableLetterAvatars = $wikimacro.parameters.disableLetterAvatars) 60 -#set($limit = $wikimacro.parameters.limit) 61 -#if("$!size" == "") 62 - #set($size = 60) 63 -#end 64 -#if("$!scope" == "") 65 - #set($scope = "auto") 66 -#end 67 -#if($scope == "auto") 68 - #if($xcontext.database != $xcontext.mainWikiName && "$!services.wiki" != '') 69 - #set ($wikiUserScope = $services.wiki.user.getUserScope($services.wiki.currentWikiId)) 70 - #if($wikiUserScope == 'GLOBAL_ONLY') 71 - #set($scope = 'global') 72 - #elseif($wikiUserScope == 'LOCAL_AND_GLOBAL') 73 - #set($scope = 'both') 74 - #else 75 - #set($scope = 'local') 76 - #end 77 - #else 78 - #set($scope = 'global') 48 +#macro (addUsersFromWiki $list $wiki $limit $tag $userList) 49 + #set($q = $services.query.hql($hql).setLimit($limit).setWiki($wiki)) 50 + #if ("$!tag" != "") 51 + #set($q = $q.bindValue('tag', $tag)) 79 79 #end 80 -#end 81 -#if($scope == "both" && $xcontext.database == $xcontext.mainWikiName) 82 - #set($scope = "global") 83 -#end 84 -#if("$!letterAvatarBgColor" == "") 85 - #set($letterAvatarBgColor = "#0A6") 86 -#end 87 -#if("$!letterAvatarFontColor" == "") 88 - #set($letterAvatarFontColor = "white") 89 -#end 90 -#if("$!requireExternalAuth" == "" || "$!requireExternalAuth" == "false" || "$!requireExternalAuth" == "0") 91 - #set($requireExternalAuth = false) 92 -#end 93 -#if("$!showUsernames" == "" || "$!showUsernames" == "false" || "$!showUsernames" == "0") 94 - #set($showUsernames = false) 95 -#end 96 -#if("$!disableTools" == "" || "$!disableTools" == "false" || "$!disableTools" == "0") 97 - #set($disableTools = false) 98 -#end 99 -#if("$!disableLetterAvatars" == "" || "$!disableLetterAvatars" == "false" || "$!disableLetterAvatars" == "0") 100 - #set($disableLetterAvatars = false) 101 -#end 102 -#if("$!limit" == "") 103 - #set($limit = 100) 104 -#end 105 -#if(!$tag || $tag == "") 106 - #set($tagselect = "") 107 - #set($tagwhere = "") 108 -#else 109 - #set($tagselect = ", 110 - BaseObject as obj3, 111 - DBStringListProperty as tagprop 112 - JOIN 113 - tagprop.list list 114 - ") 115 - #set($tagwhere = " and 116 - doc.fullName = obj3.name and 117 - obj3.className = 'XWiki.TagClass' and 118 - obj3.id = tagprop.id.id and 119 - tagprop.id.name = 'tags' and 120 - list = '$tag' 121 - ") 122 -#end 123 -#set($hql = ", 124 - BaseObject as obj 125 - #if($requireExternalAuth), BaseObject as obj2 #end, 126 - IntegerProperty as prop 127 - $tagselect 128 - WHERE 129 - doc.fullName = obj.name and 130 - obj.className = 'XWiki.XWikiUsers' 131 - #if($requireExternalAuth) and 132 - doc.fullName = obj2.name and ( 133 - obj2.className = 'XWiki.LDAPProfileClass' or 134 - obj2.className = 'XWiki.OIDC.UserClass' 135 - ) 136 - #end and 137 - obj.id = prop.id.id and 138 - prop.id.name = 'active' and 139 - prop.value = 1 140 - $tagwhere 141 - ORDER BY doc.name 142 -") 143 -#macro(addUsersFromWiki $list $wiki $limit) 144 - #set($l = $services.query.hql($hql).setLimit($limit).setWiki($wiki).execute()) 53 + #if(!$userList.empty) 54 + #set($q = $q.bindValue('users', $userList)) 55 + #end 56 + #set($l = $q.execute()) 145 145 #foreach($username in $l) 146 146 #set($discard = $list.add("$wiki:$username")) 147 147 #end 148 148 #end 149 -#set($list = []) 150 -#if ($scope == "global") 151 - #addUsersFromWiki($list $xcontext.mainWikiName $limit) 152 -#elseif ($scope == "local") 153 - #addUsersFromWiki($list $services.wiki.currentWikiId $limit) 154 -#elseif ($scope == "both") 155 - #addUsersFromWiki($list $services.wiki.currentWikiId $limit) 156 - #if($list.size() < $limit) 157 - #set($limit = $limit - $list.size()) 158 - #addUsersFromWiki($list $xcontext.mainWikiName $limit) 61 +#macro (executeMacro) 62 + #set($discard = $xwiki.ssx.use('xwiki:XWiki.Macros.Team')) 63 + #set($discard = $xwiki.jsx.use('xwiki:XWiki.Macros.Team')) 64 + #set($pictureList = {}) 65 + #set($tag = $wikimacro.parameters.tag) 66 + #set($users = $wikimacro.parameters.users) 67 + #set($size = $wikimacro.parameters.size) 68 + #set($scope = $wikimacro.parameters.scope) 69 + #set($letterAvatarBgColor = $wikimacro.parameters.letterAvatarBgColor) 70 + #set($letterAvatarFontColor = $wikimacro.parameters.letterAvatarFontColor) 71 + #set($requireExternalAuth = $wikimacro.parameters.requireExternalAuth) 72 + #set($showUsernames = $wikimacro.parameters.showUsernames) 73 + #set($disableTools = $wikimacro.parameters.disableTools) 74 + #set($disableLetterAvatars = $wikimacro.parameters.disableLetterAvatars) 75 + #set($limit = $wikimacro.parameters.limit) 76 + #if("$!size" == "") 77 + #set($size = 60) 159 159 #end 160 -#end 161 -{{html wiki=false clean=false}} 162 -<div class="xwikiteam #if(!$showUsernames)xwikiteam-usernames-hidden#end"> 163 - #if ($list.size() > 0) 164 - <ul class="xwikiteam-ul"> 165 - #foreach($user in $list) 166 - #avatar($user $size $disableLetterAvatars $letterAvatarBgColor $letterAvatarFontColor) 79 + #if("$!scope" == "") 80 + #set($scope = "auto") 81 + #end 82 + #if($scope == "auto") 83 + #if($xcontext.database != $xcontext.mainWikiName && "$!services.wiki" != '') 84 + #set ($wikiUserScope = $services.wiki.user.getUserScope($services.wiki.currentWikiId)) 85 + #if($wikiUserScope == 'GLOBAL_ONLY') 86 + #set($scope = 'global') 87 + #elseif($wikiUserScope == 'LOCAL_AND_GLOBAL') 88 + #set($scope = 'both') 89 + #else 90 + #set($scope = 'local') 167 167 #end 168 - #if(!$disableTools) 169 - <li class="xwikiteam-tools-link" hidden="hidden"> 170 - <a href="#" role="button" title="$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))"> 171 - <span class="fa fa-wrench"></span> 172 - <span class="sr-only">$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))</span> 173 - </a> 174 - </li> 175 - #end 176 - </ul> 177 - <div class="xwikiteam-tools" hidden="hidden"> 178 - <input class="xwikiteam-filter" type="text" placeholder="$escapetool.xml($services.localization.render('rendering.macro.team.content.filter'))" /> 179 - <label> 180 - <input 181 - class="xwikiteam-show-username-checkbox" 182 - type="checkbox" 183 - #if($showUsernames)checked="checked"#end 184 - /> 185 - $escapetool.xml($services.localization.render('rendering.macro.team.content.showUsernames')) 186 - </label> 187 - </div> 92 + #else 93 + #set($scope = 'global') 94 + #end 95 + #end 96 + #if($scope == "both" && $xcontext.database == $xcontext.mainWikiName) 97 + #set($scope = "global") 98 + #end 99 + #if("$!letterAvatarBgColor" == "") 100 + #set($letterAvatarBgColor = "#0A6") 101 + #end 102 + #if("$!letterAvatarFontColor" == "") 103 + #set($letterAvatarFontColor = "white") 104 + #end 105 + #if("$!requireExternalAuth" == "" || "$!requireExternalAuth" == "false" || "$!requireExternalAuth" == "0") 106 + #set($requireExternalAuth = false) 107 + #end 108 + #if("$!showUsernames" == "" || "$!showUsernames" == "false" || "$!showUsernames" == "0") 109 + #set($showUsernames = false) 110 + #end 111 + #if("$!disableTools" == "" || "$!disableTools" == "false" || "$!disableTools" == "0") 112 + #set($disableTools = false) 113 + #end 114 + #if("$!disableLetterAvatars" == "" || "$!disableLetterAvatars" == "false" || "$!disableLetterAvatars" == "0") 115 + #set($disableLetterAvatars = false) 116 + #end 117 + #if("$!limit" == "") 118 + #set($limit = 100) 119 + #end 120 + #if(!$users || $users == "") 121 + #set($userList = []) 122 + #set($userswhere = '') 188 188 #else 189 - <p>$escapetool.xml($services.localization.render('rendering.macro.team.content.noUsers'))</p> 124 + #set($userswhere = 'and doc.fullName in :users') 125 + #set($userList = $users.split(",")) 190 190 #end 191 -</div> 192 -{{/html}} 127 + #if(!$tag || $tag == "") 128 + #set($tagselect = "") 129 + #set($tagwhere = "") 130 + #else 131 + #set($tagselect = ", 132 + BaseObject as obj3, 133 + DBStringListProperty as tagprop 134 + JOIN 135 + tagprop.list list 136 + ") 137 + #set($tagwhere = " and 138 + doc.fullName = obj3.name and 139 + obj3.className = 'XWiki.TagClass' and 140 + obj3.id = tagprop.id.id and 141 + tagprop.id.name = 'tags' and 142 + list = ':tag' 143 + ") 144 + #end 145 + #set($hql = ", 146 + BaseObject as obj 147 + #if($requireExternalAuth), BaseObject as obj2 #end, 148 + IntegerProperty as prop 149 + $tagselect 150 + WHERE 151 + doc.fullName = obj.name and 152 + obj.className = 'XWiki.XWikiUsers' 153 + #if($requireExternalAuth) and 154 + doc.fullName = obj2.name and ( 155 + obj2.className = 'XWiki.LDAPProfileClass' or 156 + obj2.className = 'XWiki.OIDC.UserClass' 157 + ) 158 + #end and 159 + obj.id = prop.id.id and 160 + prop.id.name = 'active' and 161 + prop.value = 1 162 + $tagwhere 163 + $userswhere 164 + ORDER BY doc.name 165 + ") 166 + #set($list = []) 167 + #if ($scope == "global") 168 + #addUsersFromWiki($list $xcontext.mainWikiName $limit $tag $userList) 169 + #elseif ($scope == "local") 170 + #addUsersFromWiki($list $services.wiki.currentWikiId $limit $tag $userList) 171 + #elseif ($scope == "both") 172 + #addUsersFromWiki($list $services.wiki.currentWikiId $limit $tag $userList) 173 + #if($list.size() < $limit) 174 + #set($limit = $limit - $list.size()) 175 + #addUsersFromWiki($list $xcontext.mainWikiName $limit $tag $userList) 176 + #end 177 + #end 178 + {{html clean=false}} 179 + ## Starting with XWiki 13.10.4 and 14.1, img tags have a 'height: auto' style set, see XWIKI-19432: Image not to scale 180 + ## on mobile. Since this breaks the macro fixed size feature, a specific size is added. 181 + #set ($escapedSize = $escapetool.xml($size)) 182 + <div> 183 + <style> 184 + .fixedSize-$escapedSize { 185 + height: ${escapedSize}px; 186 + } 187 + </style> 188 + </div> 189 + <div class="xwikiteam #if(!$showUsernames)xwikiteam-usernames-hidden#end"> 190 + #if ($list.size() > 0) 191 + <ul class="xwikiteam-ul"> 192 + #foreach($user in $list) 193 + #avatar($user $size $disableLetterAvatars $letterAvatarBgColor $letterAvatarFontColor) 194 + #end 195 + #if(!$disableTools) 196 + <li class="xwikiteam-tools-link" hidden="hidden"> 197 + <a href="#" role="button" title="$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))"> 198 + <span class="fa fa-wrench"></span> 199 + <span class="sr-only">$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))</span> 200 + </a> 201 + </li> 202 + #end 203 + </ul> 204 + <div class="xwikiteam-tools" hidden="hidden"> 205 + <input class="xwikiteam-filter" type="text" placeholder="$escapetool.xml($services.localization.render('rendering.macro.team.content.filter'))" /> 206 + <label> 207 + <input 208 + class="xwikiteam-show-username-checkbox" 209 + type="checkbox" 210 + #if($showUsernames)checked="checked"#end 211 + /> 212 + $escapetool.xml($services.localization.render('rendering.macro.team.content.showUsernames')) 213 + </label> 214 + </div> 215 + #else 216 + <p>$escapetool.xml($services.localization.render('rendering.macro.team.content.noUsers'))</p> 217 + #end 218 + </div> 219 + {{/html}} 220 +#end 193 193 {{/velocity}} 222 + 223 +{{include reference="Licenses.Code.VelocityMacros"/}} 224 + 225 +{{velocity}} 226 +## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right 227 +## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that 228 +## don't have view right on those pages. 229 +#if ($services.licensing.licensor.hasLicensureForEntity($xcontext.macro.doc.documentReference)) 230 + #executeMacro 231 +#else 232 + {{error}} 233 + #getMissingLicenseMessage('proMacros.extension.name') 234 + {{/error}} 235 +#end 236 +{{/velocity}} - Standardkategorie
-
... ... @@ -1,1 +1,0 @@ 1 -content
- XWiki.WikiMacroParameterClass[10]
-
- Parameter-Beschreibung
-
... ... @@ -1,0 +1,1 @@ 1 +Comma-separated list of users to show. - Parameter verpflichtend
-
... ... @@ -1,0 +1,1 @@ 1 +Nein - Parameter-Name
-
... ... @@ -1,0 +1,1 @@ 1 +users