Ä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
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros/1.7]
Auf Version 6.1
bearbeitet von xwikiadmin
am 2025/05/21 09:23
Änderungskommentar: Migrated property [feature] from class [XWiki.WikiMacroParameterClass]

Zusammenfassung

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,188 @@
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 +{{velocity}}
224 +## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right
225 +## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that
226 +## don't have view right on those pages.
227 +#if ($services.promacrolicensing.hasLicensureForEntity($xcontext.macro.doc.documentReference))
228 + #executeMacro
229 +#else
230 + {{missingLicenseMessage extensionName="proMacros.extension.name"/}}
231 +#end
232 +{{/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