Wiki source code of Send Mail Status JSON
Version 1.1 by Laura Sagunski on 2022/09/27 12:39
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{velocity wiki="false"}} | ||
2 | #if("$!{request.outputSyntax}" == 'plain' || "$!{request.xpage}" == 'plain') | ||
3 | $response.setContentType('application/json') | ||
4 | ##================================================== | ||
5 | ## Offset = item # at which to start displaying data | ||
6 | ##================================================== | ||
7 | #set($offset = $numbertool.toNumber($request.get('offset')).intValue()) | ||
8 | ## Offset starts from 0 in velocity and 1 in javascript | ||
9 | #set($offset = $offset - 1) | ||
10 | #if(!$offset || $offset < 0) | ||
11 | #set($offset = 0) | ||
12 | #end | ||
13 | ##============================== | ||
14 | ## Limit = # of items to display | ||
15 | ##============================== | ||
16 | #set($limit = $numbertool.toNumber($request.get('limit')).intValue()) | ||
17 | #if(!$limit) | ||
18 | #set ($limit = 15) | ||
19 | #end | ||
20 | ##=============== | ||
21 | ## Sort direction | ||
22 | ##=============== | ||
23 | #set($order = "$!request.sort") | ||
24 | #if($order != '') | ||
25 | #if($order == 'error') | ||
26 | #set($order = 'errorSummary') | ||
27 | #end | ||
28 | #set($orderDirection = true) | ||
29 | #if("$!{request.get('dir')}" != '' && "$!{request.get('dir')}" != 'asc') | ||
30 | #set($orderDirection = false) | ||
31 | #end | ||
32 | #else | ||
33 | #set($order = "date") | ||
34 | #set($orderDirection = false) | ||
35 | #end | ||
36 | ## =========== | ||
37 | ## Filter Data | ||
38 | ## =========== | ||
39 | #set ($filterMap = {}) | ||
40 | #set ($filterId = "$!{request.get('batchId')}") | ||
41 | #if("$!{filterId}" != '') | ||
42 | #set ($discard = $filterMap.put('batchId', "%${filterId.trim()}%")) | ||
43 | #end | ||
44 | #set($filterType = "$!{request.get('type')}") | ||
45 | #if("$!{filterType}" != '') | ||
46 | #set ($discard = $filterMap.put('type', "%${filterType.trim()}%")) | ||
47 | #end | ||
48 | #set($filterRecipients = "$!{request.get('recipients')}") | ||
49 | #if("$!{filterRecipients}" != '') | ||
50 | #set ($discard = $filterMap.put('recipients', "%${filterRecipients.trim()}%")) | ||
51 | #end | ||
52 | #set($filterStatus = "$!{request.get('state')}") | ||
53 | #if("$!{filterStatus}" != '') | ||
54 | #set ($discard = $filterMap.put('state', "%${filterStatus.trim()}%")) | ||
55 | #end | ||
56 | #if ($xcontext.isMainWiki()) | ||
57 | #set($filterWiki = "$!{request.get('wiki')}") | ||
58 | #if("$!{filterWiki}" != '') | ||
59 | #set ($discard = $filterMap.put('wiki', "%${filterWiki.trim()}%")) | ||
60 | #end | ||
61 | #end | ||
62 | #set($filterError = "$!{request.get('error')}") | ||
63 | #if("$!{filterError}" != '') | ||
64 | #set ($discard = $filterMap.put('errorSummary', "%${filterError.trim()}%")) | ||
65 | #end | ||
66 | #set ($totalrows = $services.mail.storage.count($filterMap)) | ||
67 | #set ($results = $services.mail.storage.load($filterMap, $offset, $limit, $order, $orderDirection)) | ||
68 | ## If there's an error then log it since we cannot return an error to the Livetable | ||
69 | #if ($services.mail.sender.lastError) | ||
70 | $services.logging.getLogger('Mail Status Livetable').error('Failed to load mails from store', | ||
71 | $services.mail.sender.lastError) | ||
72 | ## Return an empty result in case of error | ||
73 | #set ($result = $collectiontool.getArrayList()) | ||
74 | #end | ||
75 | ## =============== | ||
76 | ## JSON Generation | ||
77 | ## =============== | ||
78 | #set ($rows = []) | ||
79 | #set ($resultmap = { | ||
80 | 'totalrows': $totalrows, | ||
81 | 'matchingtags': {}, | ||
82 | 'tags' : [], | ||
83 | 'returnedrows': $results.size(), | ||
84 | 'offset': $numbertool.toNumber($request.offset).intValue(), | ||
85 | 'sort': $request.sort, | ||
86 | 'dir': $request.dir, | ||
87 | 'reqNo': $numbertool.toNumber($request.reqNo).intValue(), | ||
88 | 'rows': $rows }) | ||
89 | #foreach($item in $results) | ||
90 | #set ($row = { | ||
91 | 'doc_viewable' : true, | ||
92 | 'date' : $xwiki.formatDate($!item.date), | ||
93 | 'batchId' : $!item.batchId, | ||
94 | 'type' : $!item.type, | ||
95 | 'recipients' : $!item.recipients, | ||
96 | 'state' : $!item.state, | ||
97 | 'error' : $!item.errorSummary }) | ||
98 | #if ($xcontext.isMainWiki()) | ||
99 | #set($discard = $row.put('wiki', $!item.wiki)) | ||
100 | #end | ||
101 | #if("$!item.state" != 'sent') | ||
102 | #set($discard = $row.put('actions', "<form action='' method='post'> | ||
103 | <input name='mail_id' value='$!item.messageId' type='hidden'/> | ||
104 | <input name='batch_id' value='$!item.batchId' type='hidden'/> | ||
105 | <span class='btn-group text-left'><input name='mailsendingaction_resend' value='${escapetool.xml($services.localization.render('Mail.SendMailStatus_livetable.resend'))}' class='btn btn-primary btn-sm' type='submit'> | ||
106 | </span> | ||
107 | </form>" )) | ||
108 | #else | ||
109 | #set($discard = $row.put('actions', '')) | ||
110 | #end | ||
111 | #set($discard = $rows.add($row)) | ||
112 | #end | ||
113 | $jsontool.serialize($resultmap) | ||
114 | #else | ||
115 | This page should be called by Mail.SendMailStatus with parameters. | ||
116 | #end | ||
117 | {{/velocity}} |