Änderungen von Dokument Team

Zuletzt geändert von xwikiadmin am 2025/12/11 07:47

Von Version 7.1
bearbeitet von xwikiadmin
am 2025/05/21 10:12
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.26.19]
Auf Version 1.1
bearbeitet von xwikiadmin
am 2023/03/07 16:26
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros/1.7]

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -4,7 +4,6 @@
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'/}} |
8 8  | size | {{translation key='rendering.macro.team.parameter.size.name'/}} | {{translation key='rendering.macro.team.parameter.size.description'/}} | 60
9 9  | showUsernames | {{translation key='rendering.macro.team.parameter.showUsernames.name'/}} | {{translation key='rendering.macro.team.parameter.showUsernames.description'/}} | false
10 10  | 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-ul {
1 +.xwikiteam .xwikiteam-ul {
2 2   list-style: none;
3 3   padding: 0;
4 4   margin: 0;
... ... @@ -7,10 +7,6 @@
7 7   flex-direction: row;
8 8  }
9 9  
10 -.xwikiteam {
11 - display: inline-block;
12 -}
13 -
14 14  .xwikiteam .xwikiteam-user, .xwikiteam-tools-link {
15 15   padding: 0;
16 16   margin: 0;
XWiki.WikiMacroClass[0]
Makro-Code
... ... @@ -1,13 +1,18 @@
1 -{{velocity output="false"}}
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 = {})
2 2  #macro(avatarInitials $name $size $letterAvatarBgColor $letterAvatarFontColor)
3 3   #set($escapedSize = $escapetool.xml($size))
4 4   #set($escapedLetterAvatarFontColor = $escapetool.xml($letterAvatarFontColor))
5 5   #set($escapedLetterAvatarBgColor = $escapetool.xml($letterAvatarBgColor))
6 - <span class="xwikiteam-avatar xwikiteam-avatar-initials"
7 - style="height:${escapedSize}px; width:${escapedSize}px; border-radius: ${escapedSize}px; background-color: $escapedLetterAvatarBgColor">
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 + >
8 8   <span class="xwikiteam-avatar-initials-inner">
9 9   <span class="xwikiteam-avatar-initials-letters" style="color: $escapedLetterAvatarFontColor">
10 - #foreach($firstLetter in $name.toUpperCase().split("[\s\[\]-]+"))$escapetool.xml($firstLetter.charAt(0))#end
15 + #foreach($firstLetter in $name.toUpperCase().split("[\s-]"))$escapetool.xml($firstLetter.charAt(0))#end
11 11   </span>
12 12   </span>
13 13   </span>
... ... @@ -17,11 +17,13 @@
17 17   #set($url = $xwiki.getURL($username))
18 18   #set($escapedDisplayUser = $escapetool.xml($displayUser))
19 19   #set($fontSize = $size / 3)
20 - <span class="xwikiteam-user"
25 + <li
26 + class="xwikiteam-user"
21 21   data-name-without-accents="$util.clearAccents($escapedDisplayUser.toLowerCase())"
22 22   title="$escapedDisplayUser"
23 23   data-username="$escapetool.xml($username)"
24 - style="font-size: ${fontSize}px">
30 + style="font-size: ${fontSize}px"
31 + >
25 25   <a href="$url">
26 26   #getUserAvatarURL($username $return $size)
27 27   #if(!$return.specified && !$disableLetterAvatars)
... ... @@ -29,7 +29,7 @@
29 29   #else
30 30   #set($escapedSize = $escapetool.xml($size))
31 31   <img
32 - class='xwikiteam-avatar fixedSize-$escapedSize'
39 + class='xwikiteam-avatar'
33 33   src='$escapetool.xml($return.url)'
34 34   alt='$escapedDisplayUser'
35 35   title='$escapedDisplayUser'
... ... @@ -39,208 +39,148 @@
39 39   #end
40 40   <span class='xwikiteam-username'>$escapedDisplayUser</span>
41 41   </a>
42 - </span>
49 + </li>
43 43  #end
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))
48 - #end
49 - #if(!$userList.empty)
50 - #set($q = $q.bindValue('users', $userList))
51 - #end
52 - #set($l = $q.execute())
53 - #foreach($username in $l)
54 - #set($discard = $list.add("$wiki:$username"))
55 - #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)
56 56  #end
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)
75 - #end
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')
88 - #end
89 - #else
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')
90 90   #set($scope = 'global')
72 + #elseif($wikiUserScope == 'LOCAL_AND_GLOBAL')
73 + #set($scope = 'both')
74 + #else
75 + #set($scope = 'local')
91 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 = '')
120 120   #else
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
78 + #set($scope = 'global')
129 129   #end
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
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
168 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
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())
145 + #foreach($username in $l)
146 + #set($discard = $list.add("$wiki:$username"))
180 180   #end
181 - #set ($elem = 'div')
182 - #set ($clean = true)
183 - #if ($wikimacro.context.isInline())
184 - #set ($elem = 'span')
185 - #set ($clean = false)
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)
186 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 234  #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)
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>
188 + #else
189 + <p>$escapetool.xml($services.localization.render('rendering.macro.team.content.noUsers'))</p>
190 + #end
191 +</div>
192 +{{/html}}
235 235  {{/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,0 +1,1 @@
1 +content
Makrobeschreibung
... ... @@ -1,0 +1,1 @@
1 +This macro displays the team members which have a specific tag
Unterstützt Inline-Modus
... ... @@ -1,1 +1,1 @@
1 -Ja
1 +Nein
XWiki.WikiMacroParameterClass[0]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +Tag that users need to have to be shown
Parameter-Typ
... ... @@ -1,1 +1,0 @@
1 -com.xwiki.pickers.TagReference
XWiki.WikiMacroParameterClass[2]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +The size of a user icon
XWiki.WikiMacroParameterClass[3]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +If true, the user should be searched in LDAP or OAuth
XWiki.WikiMacroParameterClass[4]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +The name of users should be displayed under their avatars
XWiki.WikiMacroParameterClass[5]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +The background color of the letter avatars
Parameter-Typ
... ... @@ -1,1 +1,0 @@
1 -java.awt.Color
XWiki.WikiMacroParameterClass[6]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +The font color of the letter avatars
Parameter-Typ
... ... @@ -1,1 +1,0 @@
1 -java.awt.Color
XWiki.WikiMacroParameterClass[7]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +Don't use letter avatars and display a default avatar instead
XWiki.WikiMacroParameterClass[8]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
1 +The maximum number of users to show
XWiki.WikiMacroParameterClass[9]
Parameter-Beschreibung
... ... @@ -1,0 +1,1 @@
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,1 +1,0 @@
1 -com.xwiki.pickers.teams.Scope
XWiki.WikiMacroParameterClass[10]
Parameter verpflichtend
... ... @@ -1,1 +1,0 @@
1 -Nein
Parameter-Name
... ... @@ -1,1 +1,0 @@
1 -users
Parameter-Typ
... ... @@ -1,1 +1,0 @@
1 -com.xwiki.pickers.UsersReference