Wiki source code of LiveTableResultPage
Last modified by superadmin on 2025/05/22 17:45
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | {{velocity wiki="false"}} |
| 2 | #if ($xcontext.action == 'get') | ||
| 3 | #template('hierarchy_macros.vm') | ||
| 4 | #if("$!{request.xpage}" == 'plain') | ||
| 5 | $response.setContentType('application/json') | ||
| 6 | #end | ||
| 7 | #if($request.user) | ||
| 8 | #set ($userReference = $request.user) | ||
| 9 | #else | ||
| 10 | #set ($userReference = $services.user.currentUserReference) | ||
| 11 | #end | ||
| 12 | ##============================== | ||
| 13 | ## Offset = item # at which to start displaying data | ||
| 14 | ##============================== | ||
| 15 | #set($offset = $numbertool.toNumber($request.get('offset'))) | ||
| 16 | ## offset starts from 0 in velocity and 1 in javascript | ||
| 17 | #set($offset = $offset - 1) | ||
| 18 | #if($offset < 0) | ||
| 19 | #set($offset = 0) | ||
| 20 | #end | ||
| 21 | ##================== | ||
| 22 | ## Limit = # of items to display | ||
| 23 | ##================== | ||
| 24 | #set($limit = $numbertool.toNumber($request.get('limit'))) | ||
| 25 | #set ($likedPages = $services.like.getUserLikes($userReference, $offset, $limit)) | ||
| 26 | #set ($optUserLikes = $services.like.countUserLikes($userReference)) | ||
| 27 | #if ($optUserLikes.isPresent()) | ||
| 28 | #set ($totalRows = $optUserLikes.get()) | ||
| 29 | #else | ||
| 30 | #set ($totalRows = $likedPages.size()) | ||
| 31 | #end | ||
| 32 | ##========== | ||
| 33 | ## Sort direction | ||
| 34 | ##========== | ||
| 35 | #set($order = "$!request.sort") | ||
| 36 | #if($order != '') | ||
| 37 | #set($orderDirection = "$!{request.get('dir').toLowerCase()}") | ||
| 38 | #if("$!orderDirection" != '' && "$!orderDirection" != 'asc') | ||
| 39 | #set($orderDirection = 'desc') | ||
| 40 | #end | ||
| 41 | #end | ||
| 42 | #set ($pagesRows = []) | ||
| 43 | #foreach($likedPage in $likedPages) | ||
| 44 | #set ($likedDoc = $xwiki.getDocument($likedPage)) | ||
| 45 | #set ($optDocumentLikes = $services.like.getLikes($likedPage)) | ||
| 46 | #if ($optDocumentLikes.isPresent()) | ||
| 47 | #set ($documentLikes = $optDocumentLikes.get()) | ||
| 48 | #else | ||
| 49 | #set ($documentLikes = "N/A") | ||
| 50 | #end | ||
| 51 | ## code inspired from getdocuments.vm | ||
| 52 | #set ($viewable = $xwiki.hasAccessLevel('view', $xcontext.user, $services.model.serialize($likedPage, "default"))) | ||
| 53 | #set ($row = {'doc_viewable' : $viewable}) | ||
| 54 | #if (!$viewable) | ||
| 55 | #set ($discard = $row.put('doc_fullName', $likedDoc.fullName)) | ||
| 56 | #else | ||
| 57 | #set ($translatedDoc = $likedDoc.translatedDocument) | ||
| 58 | #set ($fullname = $services.model.serialize($likedDoc.documentReference, 'default')) | ||
| 59 | #set ($discard = $row.put('doc_name', $likedDoc.documentReference.name)) | ||
| 60 | #set ($discard = $row.put('doc_fullName', $fullname)) | ||
| 61 | #set ($location = "#hierarchy($likedDoc.documentReference, {'limit': 5, 'plain': false, 'local': true, 'displayTitle': false})") | ||
| 62 | #set ($discard = $row.put('doc_location', $location)) | ||
| 63 | #set ($discard = $row.put('doc_space', $likedDoc.space)) | ||
| 64 | #set ($discard = $row.put('doc_url', $xwiki.getURL($likedDoc))) | ||
| 65 | #set ($discard = $row.put('doc_space_url', | ||
| 66 | $xwiki.getURL($services.model.createDocumentReference($!likedDoc.wiki, $!likedDoc.space, 'WebHome')))) | ||
| 67 | #set ($discard = $row.put('doc_wiki', $likedDoc.wiki)) | ||
| 68 | #set ($discard = $row.put('doc_wiki_url', $xwiki.getURL($services.model.resolveDocument('', 'default', | ||
| 69 | $likedDoc.documentReference.extractReference('WIKI'))))) | ||
| 70 | #set ($discard = $row.put('doc_author_url', $xwiki.getURL($translatedDoc.author))) | ||
| 71 | #set ($discard = $row.put('doc_date', $xwiki.formatDate($translatedDoc.date))) | ||
| 72 | #set ($discard = $row.put('doc_title', $translatedDoc.plainTitle)) | ||
| 73 | #set ($rawTitle = $translatedDoc.title) | ||
| 74 | #if ($rawTitle != $row['doc_title']) | ||
| 75 | #set ($discard = $row.put('doc_title_raw', $rawTitle)) | ||
| 76 | #end | ||
| 77 | #set ($discard = $row.put('doc_author', $xwiki.getUserName($translatedDoc.author, false))) | ||
| 78 | #set ($discard = $row.put('doc_creationDate', $xwiki.formatDate($translatedDoc.creationDate))) | ||
| 79 | #set ($discard = $row.put('doc_creator', $xwiki.getUserName($translatedDoc.creator, false))) | ||
| 80 | #end | ||
| 81 | #set ($discard = $row.put('like', $documentLikes)) | ||
| 82 | #set ($discard = $pagesRows.add($row)) | ||
| 83 | #end | ||
| 84 | #set ($newOffset = $offset + 1) | ||
| 85 | ## === | ||
| 86 | ## JSON | ||
| 87 | ## === | ||
| 88 | #jsonResponse({ | ||
| 89 | "totalrows": $totalRows, | ||
| 90 | "returnedrows": $pagesRows.size(), | ||
| 91 | "offset": $newOffset, | ||
| 92 | "reqNo": $numbertool.toNumber($request.reqNo), | ||
| 93 | "rows": $pagesRows | ||
| 94 | }) | ||
| 95 | #end | ||
| 96 | {{/velocity}} |