Ä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 7.1
bearbeitet von xwikiadmin
am 2025/05/21 10:12
am 2025/05/21 10:12
Änderungskommentar:
Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.26.19]
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
-
Objekte (11 geändert, 1 hinzugefügt, 0 gelöscht)
- XWiki.StyleSheetExtension[0]
- XWiki.WikiMacroClass[0]
- XWiki.WikiMacroParameterClass[0]
- XWiki.WikiMacroParameterClass[2]
- XWiki.WikiMacroParameterClass[3]
- XWiki.WikiMacroParameterClass[4]
- XWiki.WikiMacroParameterClass[5]
- XWiki.WikiMacroParameterClass[6]
- XWiki.WikiMacroParameterClass[7]
- XWiki.WikiMacroParameterClass[8]
- XWiki.WikiMacroParameterClass[9]
- XWiki.WikiMacroParameterClass[10]
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.StyleSheetExtension[0]
-
- Code
-
... ... @@ -1,4 +1,4 @@ 1 -.xwikiteam .xwikiteam-ul {1 +.xwikiteam-ul { 2 2 list-style: none; 3 3 padding: 0; 4 4 margin: 0; ... ... @@ -7,6 +7,10 @@ 7 7 flex-direction: row; 8 8 } 9 9 10 +.xwikiteam { 11 + display: inline-block; 12 +} 13 + 10 10 .xwikiteam .xwikiteam-user, .xwikiteam-tools-link { 11 11 padding: 0; 12 12 margin: 0;
- XWiki.WikiMacroClass[0]
-
- Makro-Code
-
... ... @@ -1,18 +1,13 @@ 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)) 8 8 #set($escapedLetterAvatarBgColor = $escapetool.xml($letterAvatarBgColor)) 9 - <span 10 - class="xwikiteam-avatar xwikiteam-avatar-initials" 11 - style="height:${escapedSize}px; width:${escapedSize}px; border-radius: ${escapedSize}px; background-color: $escapedLetterAvatarBgColor" 12 - > 6 + <span class="xwikiteam-avatar xwikiteam-avatar-initials" 7 + style="height:${escapedSize}px; width:${escapedSize}px; border-radius: ${escapedSize}px; background-color: $escapedLetterAvatarBgColor"> 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 10 + #foreach($firstLetter in $name.toUpperCase().split("[\s\[\]-]+"))$escapetool.xml($firstLetter.charAt(0))#end 16 16 </span> 17 17 </span> 18 18 </span> ... ... @@ -22,13 +22,11 @@ 22 22 #set($url = $xwiki.getURL($username)) 23 23 #set($escapedDisplayUser = $escapetool.xml($displayUser)) 24 24 #set($fontSize = $size / 3) 25 - <li 26 - class="xwikiteam-user" 20 + <span class="xwikiteam-user" 27 27 data-name-without-accents="$util.clearAccents($escapedDisplayUser.toLowerCase())" 28 28 title="$escapedDisplayUser" 29 29 data-username="$escapetool.xml($username)" 30 - style="font-size: ${fontSize}px" 31 - > 24 + style="font-size: ${fontSize}px"> 32 32 <a href="$url"> 33 33 #getUserAvatarURL($username $return $size) 34 34 #if(!$return.specified && !$disableLetterAvatars) ... ... @@ -36,7 +36,7 @@ 36 36 #else 37 37 #set($escapedSize = $escapetool.xml($size)) 38 38 <img 39 - class='xwikiteam-avatar' 32 + class='xwikiteam-avatar fixedSize-$escapedSize' 40 40 src='$escapetool.xml($return.url)' 41 41 alt='$escapedDisplayUser' 42 42 title='$escapedDisplayUser' ... ... @@ -46,148 +46,208 @@ 46 46 #end 47 47 <span class='xwikiteam-username'>$escapedDisplayUser</span> 48 48 </a> 49 - </ li>42 + </span> 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') 44 +#macro (addUsersFromWiki $list $wiki $limit $tag $userList) 45 + #set($q = $services.query.hql($hql).setLimit($limit).setWiki($wiki)) 46 + #if ("$!tag" != "") 47 + #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()) 49 + #if(!$userList.empty) 50 + #set($q = $q.bindValue('users', $userList)) 51 + #end 52 + #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) 57 +#macro (executeMacro) 58 + #set($discard = $xwiki.ssx.use('xwiki:XWiki.Macros.Team')) 59 + #set($discard = $xwiki.jsx.use('xwiki:XWiki.Macros.Team')) 60 + #set($pictureList = {}) 61 + #set($tag = $xcontext.macro.params.tag) 62 + #set($size = $wikimacro.parameters.size) 63 + #set($scope = $wikimacro.parameters.scope) 64 + ## I need the raw value to avoid XWIKI-18965 65 + #set($users = $xcontext.macro.params.users) 66 + #set($letterAvatarBgColor = $xcontext.macro.params.letterAvatarBgColor) 67 + #set($letterAvatarFontColor = $xcontext.macro.params.letterAvatarFontColor) 68 + #set($requireExternalAuth = $wikimacro.parameters.requireExternalAuth) 69 + #set($showUsernames = $wikimacro.parameters.showUsernames) 70 + #set($disableTools = $wikimacro.parameters.disableTools) 71 + #set($disableLetterAvatars = $wikimacro.parameters.disableLetterAvatars) 72 + #set($limit = $wikimacro.parameters.limit) 73 + #if("$!size" == "") 74 + #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) 76 + #if("$!scope" == "") 77 + #set($scope = "auto") 78 + #end 79 + #if($scope == "auto") 80 + #if($xcontext.database != $xcontext.mainWikiName && "$!services.wiki" != '') 81 + #set ($wikiUserScope = $services.wiki.user.getUserScope($services.wiki.currentWikiId)) 82 + #if($wikiUserScope == 'GLOBAL_ONLY') 83 + #set($scope = 'global') 84 + #elseif($wikiUserScope == 'LOCAL_AND_GLOBAL') 85 + #set($scope = 'both') 86 + #else 87 + #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> 89 + #else 90 + #set($scope = 'global') 91 + #end 92 + #end 93 + #if($scope == "both" && $xcontext.database == $xcontext.mainWikiName) 94 + #set($scope = "global") 95 + #end 96 + #if("$!letterAvatarBgColor" == "") 97 + #set($letterAvatarBgColor = "#0A6") 98 + #end 99 + #if("$!letterAvatarFontColor" == "") 100 + #set($letterAvatarFontColor = "white") 101 + #end 102 + #if("$!requireExternalAuth" == "" || "$!requireExternalAuth" == "false" || "$!requireExternalAuth" == "0") 103 + #set($requireExternalAuth = false) 104 + #end 105 + #if("$!showUsernames" == "" || "$!showUsernames" == "false" || "$!showUsernames" == "0") 106 + #set($showUsernames = false) 107 + #end 108 + #if("$!disableTools" == "" || "$!disableTools" == "false" || "$!disableTools" == "0") 109 + #set($disableTools = false) 110 + #end 111 + #if("$!disableLetterAvatars" == "" || "$!disableLetterAvatars" == "false" || "$!disableLetterAvatars" == "0") 112 + #set($disableLetterAvatars = false) 113 + #end 114 + #if("$!limit" == "") 115 + #set($limit = 100) 116 + #end 117 + #if(!$users || $users == "") 118 + #set($userList = []) 119 + #set($userswhere = '') 188 188 #else 189 - <p>$escapetool.xml($services.localization.render('rendering.macro.team.content.noUsers'))</p> 121 + #set ($userswhere = 'and doc.fullName in :users') 122 + #set ($userReferencesList = $users.split(",")) 123 + #set ($userList = []) 124 + #foreach ($user in $userReferencesList) 125 + #set ($resolvedRef = $services.model.resolveDocument($user)) 126 + #set ($username = $xwiki.getUser($resolvedRef).getUser().getFullName()) 127 + #set ($discard = $userList.add($username)) 128 + #end 190 190 #end 191 -</div> 192 -{{/html}} 130 + #if(!$tag || $tag == "") 131 + #set($tagselect = "") 132 + #set($tagwhere = "") 133 + #else 134 + #set($tagselect = ", 135 + BaseObject as obj3, 136 + DBStringListProperty as tagprop 137 + JOIN 138 + tagprop.list list 139 + ") 140 + #set($tagwhere = " and 141 + doc.fullName = obj3.name and 142 + obj3.className = 'XWiki.TagClass' and 143 + obj3.id = tagprop.id.id and 144 + tagprop.id.name = 'tags' and 145 + list = :tag 146 + ") 147 + #end 148 + #set($hql = ", 149 + BaseObject as obj 150 + #if($requireExternalAuth), BaseObject as obj2 #end, 151 + IntegerProperty as prop 152 + $tagselect 153 + WHERE 154 + doc.fullName = obj.name and 155 + obj.className = 'XWiki.XWikiUsers' 156 + #if($requireExternalAuth) and 157 + doc.fullName = obj2.name and ( 158 + obj2.className = 'XWiki.LDAPProfileClass' or 159 + obj2.className = 'XWiki.OIDC.UserClass' 160 + ) 161 + #end and 162 + obj.id = prop.id.id and 163 + prop.id.name = 'active' and 164 + prop.value = 1 165 + $tagwhere 166 + $userswhere 167 + ORDER BY doc.name 168 + ") 169 + #set($list = []) 170 + #if ($scope == "global") 171 + #addUsersFromWiki($list $xcontext.mainWikiName $limit $tag $userList) 172 + #elseif ($scope == "local") 173 + #addUsersFromWiki($list $services.wiki.currentWikiId $limit $tag $userList) 174 + #elseif ($scope == "both") 175 + #addUsersFromWiki($list $services.wiki.currentWikiId $limit $tag $userList) 176 + #if($list.size() < $limit) 177 + #set($limit = $limit - $list.size()) 178 + #addUsersFromWiki($list $xcontext.mainWikiName $limit $tag $userList) 179 + #end 180 + #end 181 + #set ($elem = 'div') 182 + #set ($clean = true) 183 + #if ($wikimacro.context.isInline()) 184 + #set ($elem = 'span') 185 + #set ($clean = false) 186 + #end 187 + #if ($xcontext.getAction()=='edit') 188 + #set ($clean = true) 189 + #end 190 + {{html clean="$clean"}} 191 + ## Starting with XWiki 13.10.4 and 14.1, img tags have a 'height: auto' style set, see XWIKI-19432: Image not to scale 192 + ## on mobile. Since this breaks the macro fixed size feature, a specific size is added. 193 + #set ($escapedSize = $escapetool.xml($size)) 194 + <$elem> 195 + <style> 196 + .fixedSize-$escapedSize { 197 + height: ${escapedSize}px; 198 + } 199 + </style> 200 + </$elem> 201 + <$elem class="xwikiteam #if(!$showUsernames)xwikiteam-usernames-hidden#end"> 202 + #if ($list.size() > 0) 203 + <span class="xwikiteam-ul"> 204 + #foreach($user in $list) 205 + #avatar($user $size $disableLetterAvatars $letterAvatarBgColor $letterAvatarFontColor) 206 + #end 207 + #if (!$disableTools && !$wikimacro.context.isInline()) 208 + <span class="xwikiteam-tools-link" hidden="hidden"> 209 + <a href="#" role="button" title="$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))"> 210 + <span class="fa fa-wrench"></span> 211 + <span class="sr-only">$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))</span> 212 + </a> 213 + </span> 214 + #end 215 + </span> 216 + #if (!$disableTools && !$wikimacro.context.isInline()) 217 + <span class="xwikiteam-tools" hidden="hidden"> 218 + <input class="xwikiteam-filter" type="text" placeholder="$escapetool.xml($services.localization.render('rendering.macro.team.content.filter'))" /> 219 + <label> 220 + <input 221 + class="xwikiteam-show-username-checkbox" 222 + type="checkbox" 223 + #if($showUsernames)checked="checked"#end 224 + /> 225 + $escapetool.xml($services.localization.render('rendering.macro.team.content.showUsernames')) 226 + </label> 227 + </span> 228 + #end 229 + #else 230 + <$elem>$escapetool.xml($services.localization.render('rendering.macro.team.content.noUsers'))</$elem> 231 + #end 232 + </$elem> 233 + {{/html}} 234 +#end 193 193 {{/velocity}} 236 + 237 +{{velocity}} 238 +## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right 239 +## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that 240 +## don't have view right on those pages. 241 +#if ($services.promacrolicensing.hasLicensureForEntity($xcontext.macro.doc.documentReference)) 242 + #executeMacro 243 +#else 244 + {{missingLicenseMessage extensionName="proMacros.extension.name"/}} 245 +#end 246 +{{/velocity}} - Standardkategorie
-
... ... @@ -1,1 +1,0 @@ 1 -content - Unterstützt Inline-Modus
-
... ... @@ -1,1 +1,1 @@ 1 - Nein1 +Ja - Makrobeschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -This macro displays the team members which have a specific tag
- XWiki.WikiMacroParameterClass[0]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -Tag that users need to have to be shown - Parameter-Typ
-
... ... @@ -1,0 +1,1 @@ 1 +com.xwiki.pickers.TagReference
- XWiki.WikiMacroParameterClass[2]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -The size of a user icon
- XWiki.WikiMacroParameterClass[3]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -If true, the user should be searched in LDAP or OAuth
- XWiki.WikiMacroParameterClass[4]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -The name of users should be displayed under their avatars
- XWiki.WikiMacroParameterClass[5]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -The background color of the letter avatars - Parameter-Typ
-
... ... @@ -1,0 +1,1 @@ 1 +java.awt.Color
- XWiki.WikiMacroParameterClass[6]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -The font color of the letter avatars - Parameter-Typ
-
... ... @@ -1,0 +1,1 @@ 1 +java.awt.Color
- XWiki.WikiMacroParameterClass[7]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -Don't use letter avatars and display a default avatar instead
- XWiki.WikiMacroParameterClass[8]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -The maximum number of users to show
- XWiki.WikiMacroParameterClass[9]
-
- Parameter-Beschreibung
-
... ... @@ -1,1 +1,0 @@ 1 -In which wiki to find users (global: in the main wiki. local: in the current wiki. both: in both the main wiki and the local wiki. auto: find out from the wiki settings). Has no effect in the main wiki. - Parameter-Typ
-
... ... @@ -1,0 +1,1 @@ 1 +com.xwiki.pickers.teams.Scope
- XWiki.WikiMacroParameterClass[10]
-
- Parameter-Name
-
... ... @@ -1,0 +1,1 @@ 1 +users - Parameter-Typ
-
... ... @@ -1,0 +1,1 @@ 1 +com.xwiki.pickers.UsersReference - Parameter verpflichtend
-
... ... @@ -1,0 +1,1 @@ 1 +Nein