Skip to content
Snippets Groups Projects
Commit 73dcb1d4 authored by Vincent Massol's avatar Vincent Massol
Browse files

XWIKI-11629: Add new scripting API to set a mail type

XWIKI-11630: Add the message type in the Mail Sender Status Livetable

XWIKI-11626: Display the message error in the Mail Sending Status livetable
* Fix filter sort

+ Add a message type when sending a reset password email
parent c9390d46
No related branches found
No related tags found
No related merge requests found
......@@ -109,6 +109,7 @@
#set ($mailTemplateReference = $services.model.createDocumentReference('', 'XWiki', 'ResetPasswordMailContent'))
#set ($mailParameters = {'from' : $from, 'to' : $userEmail, 'language' : $xcontext.language})
#set ($message = $services.mailsender.createMessage('template', $mailTemplateReference, $mailParameters))
#set ($discard = $message.setType('Reset Password'))
#macro (displayError $text)
{{html}}
......@@ -134,7 +135,7 @@
#set ($failedMailStatuses = $mailResult.statusResult.getByState('FAILED'))
#if ($failedMailStatuses.hasNext())
#set ($mailStatus = $failedMailStatuses.next())
#displayError($mailStatus.error)
#displayError($mailStatus.errorDescription)
#else
{{info}}$services.localization.render('xe.admin.passwordReset.emailSent', ["$userDoc.display('email', $userObj)"]){{/info}}
......
......@@ -195,6 +195,17 @@ public void addHeader(String name, String value)
}
}
/**
* Specifies what type of email is being sent. This is useful for applications to sepcify a type when they send
* mail. This allows (for example) to filter these emails in the Mail Sender Status Admin UI.
*
* @param mailType the type of mail being sent (e.g "Watchlist", "Reset Password", "Send Page by Mail", etc)
*/
public void setType(String mailType)
{
addHeader("X-MailType", mailType);
}
private void setError(Exception e)
{
this.execution.getContext().setProperty(MailSenderScriptService.ERROR_KEY, e);
......
......@@ -89,6 +89,10 @@
#if("$!{filterId}" != '')
#set($filterQuery = "and status.batchId like '%${filterId.trim()}%' ")
#end
#set($filterType = "$!{request.get('type')}")
#if("$!{filterType}" != '')
#set($filterQuery = $filterQuery + "and status.type like '%${filterType.trim()}%' ")
#end
#set($filterRecipients = "$!{request.get('recipients')}")
#if("$!{filterRecipients}" != '')
#set($filterQuery = $filterQuery + "and status.recipients like '%${filterRecipients.trim()}%' ")
......@@ -97,6 +101,10 @@
#if("$!{filterStatus}" != '')
#set($filterQuery = $filterQuery + "and status.state like '%${filterStatus.trim()}%' ")
#end
#set($filterError = "$!{request.get('error')}")
#if("$!{filterError}" != '')
#set($filterQuery = $filterQuery + "and status.errorSummary like '%${filterError.trim()}%' ")
#end
#set($totalrows = $services.query.xwql("select count(status) from MailStatus as status").count())
#set($results = [])
#set($xwql = "select status from MailStatus as status where status.messageId<>'' $!filterQuery order by status.${order} $!orderDirection")
......@@ -121,6 +129,7 @@
'doc_viewable' : true,
'date' : "$xwiki.formatDate($!item.date)",
'batchId' : "$!item.batchId",
'type' : "$!item.type",
'recipients' : "$escapetool.javascript($recipients)",
'state' : "$!item.state",
'error' : "$!item.errorSummary",
......
......@@ -67,7 +67,7 @@
Mail.SendMailConfigClass_sendWaitTime.hint=The delay to wait between each mail being sent, in milliseconds (defaults to 8 seconds)
Mail.SendMailStatus_livetable.date=Date
Mail.SendMailStatus_livetable.batchId=Batch ID
Mail.SendMailStatus_livetable.messageId=Message ID
Mail.SendMailStatus_livetable.type=Type
Mail.SendMailStatus_livetable.recipients=Recipients
Mail.SendMailStatus_livetable.state=Status
Mail.SendMailStatus_livetable.error=Error
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment