Hide last authors
superadmin 1.1 1 {{velocity}}
2 #set($obj = $doc.getObject('XWiki.XWikiUsers'))
3 #if(!$obj)
4 {{info}}{{translation key="xe.admin.users.applyonusers"/}}{{/info}}##
5 #elseif ($xcontext.action == 'get')
6 #if ($xcontext.isMainWiki())
7 ## Main wiki users can be located in any wiki
8 #set($groups = $services.user.group.getGroupsFromAllWikis($doc.documentReference))
9 #else
10 ## Subwiki users are usually located only in the local wiki
11 #set($groups = $services.user.group.getGroupsFromMemberWiki($doc.documentReference))
12 #end
13 ## Filter
14 #set($filterValue = "$!{request.get('group')}")
15 #if ($filterValue != '')
16 #set ($filteredGroups = [])
17 #foreach($group in $groups)
18 #set($groupString = $services.model.serialize($group, 'default'))
19 #if ($groupString.toLowerCase().contains($filterValue.toLowerCase()))
20 #set($void = $filteredGroups.add($group))
21 #end
22 #end
23 #else
24 #set ($filteredGroups = $groups)
25 #end
26 #if ($filteredGroups.size() > 0)
27 #set ($filteredGroups = $sorttool.sort($filteredGroups))
28 #set($order = "$!request.sort")
29 #if ($order == 'group' && $request.get('dir').toLowerCase() == 'desc')
30 ## Reverse order
31 #set($descGroups = [])
32 #set($max = $filteredGroups.size() - 1)
33 #foreach($i in [ $max .. 0 ])
34 #set($void = $descGroups.add($filteredGroups[$i]))
35 #end
36 #set($filteredGroups = $descGroups)
37 #end
38 #set($offset = $mathtool.toInteger($request.get('offset')))
39 ## Offset starts from 0 in velocity and 1 in javascript
40 #set($offset = $offset - 1)
41 #if (!$offset || $offset < 0)
42 #set($offset = 0)
43 #end
44 #set($limit = $mathtool.toInteger($request.get('limit')))
45 #if (!$limit || $limit < 0)
46 #set ($limit = 15)
47 #end
48 #set($toIndex = $offset + $limit)
49 #if ($toIndex > $filteredGroups.size())
50 #set($toIndex = $filteredGroups.size())
51 #end
52 #set($subGroups = $filteredGroups.subList($offset, $toIndex))
53 #else
54 #set($subGroups = [])
55 #end
56 #set($rows = [])
57 #foreach ($group in $subGroups)
58 #set($void = $rows.add({
59 'doc_viewable' : true,
60 'group' : $group.name,
61 'group_url' : $xwiki.getURL($group)
62 }))
63 #end
64 #set($result = {
65 'totalrows' : $filteredGroups.size(),
66 'returnedrows' : $subGroups.size(),
67 'offset' : $mathtool.add($offset, 1),
68 'reqNo' : $mathtool.toNumber($request.reqNo),
69 'rows': $rows
70 })
71 $jsontool.serialize($result)
72 $response.setContentType('application/json')
73 #else
74 (% id="Huser.profile.groups.title" %)
75 = {{translation key="user.profile.groups.title"/}}
76
77 {{translation key="user.profile.groups.description"/}}
78
79 #set($columns = [ 'group' ])
80 #set($columnsProperties = {
81 'group' : { 'type' : 'text', 'link' : 'field' }
82 })
83 #set($options = {
84 'translationPrefix' : 'user.profile.groups.table.',
85 'resultPage' : $doc.fullName,
86 'extraParams' : '&sheet=XWiki.XWikiUserMembershipSheet'
87 })
88 #livetable("user.profile.group.table" $columns $columnsProperties $options)
89 #end## User object exists
90 {{/velocity}}