Änderungen von Dokument Team

Zuletzt geändert von xwikiadmin am 2025/05/21 09:56

Von Version 2.1
bearbeitet von xwikiadmin
am 2023/10/26 09:30
Änderungskommentar: Migrated property [type] from class [XWiki.WikiMacroParameterClass]
Auf Version 6.1
bearbeitet von xwikiadmin
am 2025/05/21 09:56
Änderungskommentar: Install extension [com.xwiki.pro:xwiki-pro-macros-ui/1.26.19]

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.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
... ... @@ -3,13 +3,11 @@
3 3   #set($escapedSize = $escapetool.xml($size))
4 4   #set($escapedLetterAvatarFontColor = $escapetool.xml($letterAvatarFontColor))
5 5   #set($escapedLetterAvatarBgColor = $escapetool.xml($letterAvatarBgColor))
6 - <span
7 - class="xwikiteam-avatar xwikiteam-avatar-initials"
8 - style="height:${escapedSize}px; width:${escapedSize}px; border-radius: ${escapedSize}px; background-color: $escapedLetterAvatarBgColor"
9 - >
6 + <span class="xwikiteam-avatar xwikiteam-avatar-initials"
7 + style="height:${escapedSize}px; width:${escapedSize}px; border-radius: ${escapedSize}px; background-color: $escapedLetterAvatarBgColor">
10 10   <span class="xwikiteam-avatar-initials-inner">
11 11   <span class="xwikiteam-avatar-initials-letters" style="color: $escapedLetterAvatarFontColor">
12 - #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
13 13   </span>
14 14   </span>
15 15   </span>
... ... @@ -19,13 +19,11 @@
19 19   #set($url = $xwiki.getURL($username))
20 20   #set($escapedDisplayUser = $escapetool.xml($displayUser))
21 21   #set($fontSize = $size / 3)
22 - <li
23 - class="xwikiteam-user"
20 + <span class="xwikiteam-user"
24 24   data-name-without-accents="$util.clearAccents($escapedDisplayUser.toLowerCase())"
25 25   title="$escapedDisplayUser"
26 26   data-username="$escapetool.xml($username)"
27 - style="font-size: ${fontSize}px"
28 - >
24 + style="font-size: ${fontSize}px">
29 29   <a href="$url">
30 30   #getUserAvatarURL($username $return $size)
31 31   #if(!$return.specified && !$disableLetterAvatars)
... ... @@ -33,7 +33,7 @@
33 33   #else
34 34   #set($escapedSize = $escapetool.xml($size))
35 35   <img
36 - class='xwikiteam-avatar'
32 + class='xwikiteam-avatar fixedSize-$escapedSize'
37 37   src='$escapetool.xml($return.url)'
38 38   alt='$escapedDisplayUser'
39 39   title='$escapedDisplayUser'
... ... @@ -43,10 +43,17 @@
43 43   #end
44 44   <span class='xwikiteam-username'>$escapedDisplayUser</span>
45 45   </a>
46 - </li>
42 + </span>
47 47  #end
48 -#macro (addUsersFromWiki $list $wiki $limit)
49 - #set($l = $services.query.hql($hql).setLimit($limit).setWiki($wiki).execute())
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())
50 50   #foreach($username in $l)
51 51   #set($discard = $list.add("$wiki:$username"))
52 52   #end
... ... @@ -55,11 +55,13 @@
55 55   #set($discard = $xwiki.ssx.use('xwiki:XWiki.Macros.Team'))
56 56   #set($discard = $xwiki.jsx.use('xwiki:XWiki.Macros.Team'))
57 57   #set($pictureList = {})
58 - #set($tag = $wikimacro.parameters.tag)
61 + #set($tag = $xcontext.macro.params.tag)
59 59   #set($size = $wikimacro.parameters.size)
60 60   #set($scope = $wikimacro.parameters.scope)
61 - #set($letterAvatarBgColor = $wikimacro.parameters.letterAvatarBgColor)
62 - #set($letterAvatarFontColor = $wikimacro.parameters.letterAvatarFontColor)
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)
63 63   #set($requireExternalAuth = $wikimacro.parameters.requireExternalAuth)
64 64   #set($showUsernames = $wikimacro.parameters.showUsernames)
65 65   #set($disableTools = $wikimacro.parameters.disableTools)
... ... @@ -109,6 +109,19 @@
109 109   #if("$!limit" == "")
110 110   #set($limit = 100)
111 111   #end
117 + #if(!$users || $users == "")
118 + #set($userList = [])
119 + #set($userswhere = '')
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
129 + #end
112 112   #if(!$tag || $tag == "")
113 113   #set($tagselect = "")
114 114   #set($tagwhere = "")
... ... @@ -124,7 +124,7 @@
124 124   obj3.className = 'XWiki.TagClass' and
125 125   obj3.id = tagprop.id.id and
126 126   tagprop.id.name = 'tags' and
127 - list = '$tag'
145 + list = :tag
128 128   ")
129 129   #end
130 130   #set($hql = ",
... ... @@ -145,66 +145,84 @@
145 145   prop.id.name = 'active' and
146 146   prop.value = 1
147 147   $tagwhere
166 + $userswhere
148 148   ORDER BY doc.name
149 149   ")
150 150   #set($list = [])
151 151   #if ($scope == "global")
152 - #addUsersFromWiki($list $xcontext.mainWikiName $limit)
171 + #addUsersFromWiki($list $xcontext.mainWikiName $limit $tag $userList)
153 153   #elseif ($scope == "local")
154 - #addUsersFromWiki($list $services.wiki.currentWikiId $limit)
173 + #addUsersFromWiki($list $services.wiki.currentWikiId $limit $tag $userList)
155 155   #elseif ($scope == "both")
156 - #addUsersFromWiki($list $services.wiki.currentWikiId $limit)
175 + #addUsersFromWiki($list $services.wiki.currentWikiId $limit $tag $userList)
157 157   #if($list.size() < $limit)
158 158   #set($limit = $limit - $list.size())
159 - #addUsersFromWiki($list $xcontext.mainWikiName $limit)
178 + #addUsersFromWiki($list $xcontext.mainWikiName $limit $tag $userList)
160 160   #end
161 161   #end
162 - {{html wiki=false clean=false}}
163 - <div class="xwikiteam #if(!$showUsernames)xwikiteam-usernames-hidden#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">
164 164   #if ($list.size() > 0)
165 - <ul class="xwikiteam-ul">
203 + <span class="xwikiteam-ul">
166 166   #foreach($user in $list)
167 167   #avatar($user $size $disableLetterAvatars $letterAvatarBgColor $letterAvatarFontColor)
168 168   #end
169 - #if(!$disableTools)
170 - <li class="xwikiteam-tools-link" hidden="hidden">
207 + #if (!$disableTools && !$wikimacro.context.isInline())
208 + <span class="xwikiteam-tools-link" hidden="hidden">
171 171   <a href="#" role="button" title="$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))">
172 172   <span class="fa fa-wrench"></span>
173 173   <span class="sr-only">$escapetool.xml($services.localization.render('rendering.macro.team.content.options'))</span>
174 174   </a>
175 - </li>
213 + </span>
176 176   #end
177 - </ul>
178 - <div class="xwikiteam-tools" hidden="hidden">
179 - <input class="xwikiteam-filter" type="text" placeholder="$escapetool.xml($services.localization.render('rendering.macro.team.content.filter'))" />
180 - <label>
181 - <input
182 - class="xwikiteam-show-username-checkbox"
183 - type="checkbox"
184 - #if($showUsernames)checked="checked"#end
185 - />
186 - $escapetool.xml($services.localization.render('rendering.macro.team.content.showUsernames'))
187 - </label>
188 - </div>
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
189 189   #else
190 - <p>$escapetool.xml($services.localization.render('rendering.macro.team.content.noUsers'))</p>
230 + <$elem>$escapetool.xml($services.localization.render('rendering.macro.team.content.noUsers'))</$elem>
191 191   #end
192 - </div>
232 + </$elem>
193 193   {{/html}}
194 194  #end
195 195  {{/velocity}}
196 196  
197 -{{include reference="Licenses.Code.VelocityMacros"/}}
198 -
199 199  {{velocity}}
200 200  ## We need to check if there is a valid license because the macro is registered even if the user doesn't have view right
201 201  ## on the macro definition page. See XWIKI-14828: Rendering macros defined in wiki pages are available to users that
202 202  ## don't have view right on those pages.
203 -#if ($services.licensing.licensor.hasLicensureForEntity($xcontext.macro.doc.documentReference))
241 +#if ($services.promacrolicensing.hasLicensureForEntity($xcontext.macro.doc.documentReference))
204 204   #executeMacro
205 205  #else
206 - {{error}}
207 - #getMissingLicenseMessage('proMacros.extension.name')
208 - {{/error}}
244 + {{missingLicenseMessage extensionName="proMacros.extension.name"/}}
209 209  #end
210 210  {{/velocity}}
Standardkategorie
... ... @@ -1,1 +1,0 @@
1 -content
Unterstützt Inline-Modus
... ... @@ -1,1 +1,1 @@
1 -Nein
1 +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