...
field | expression |
---|
Issue Key | $context.issue.key.asText()
|
Project Key | $context.issue.fields.project.key.asText()
|
Description (as Text) | $fields.description.asText()
|
Description (as HTML) | $jemhUtils.wikiToHtml($fields.description.asText())
|
Custom Field Value (Text) | $context.issue.fields.customfield_10610.asText()
|
Custom Field Value (Single Choice) | $context.issue.fields.customfield_13900.value.asText()
|
Custom Field Value (Multiple Choice) | Code Block |
---|
#foreach ($item in $context.issue.fields.customfield_13600)
$item.value.asText()
#end |
|
Reporter Display Name | $context.issue.fields.reporter.displayName.asText()
|
All Comments (if present) | Code Block |
---|
<h1>Prior Comments</h1>
<p>Issue $context.issue.key.asText() has $fields.comment.total comments</p>
#foreach( $comment in $fields.comment.comments )
<h3>Comment created $comment.created.asText()</h3>
$jemhUtils.wikiToHtml($comment.body.asText())
#end |
|
Access individual comments | Code Block |
---|
<h2>STATIC comment extract</h2>
<pre>
1) $fields.comment.comments[0].id -- $fields.comment.comments[0].created -- <p>$fields.comment.comments[0].body.asText()</p>
2) $fields.comment.comments[1].id -- $fields.comment.comments[1].created -- <p>$fields.comment.comments[1].body.asText()</p>
3) $fields.comment.comments[2].id -- $fields.comment.comments[2].created -- <p>$fields.comment.comments[2].body.asText()</p>
</pre> |
|
Display comment is reverse order | Code Block |
---|
<h2>REVERSED comments</h2>
#if ($fields.comment.total >0)
#foreach($i in [1..$fields.comment.total])
#set ($actualIdx = $fields.comment.total - $i)
#set ($comment = $fields.comment.comments[$actualIdx.intValue()])
<p>
<h3>Comment created $comment.created.asText()</h3>
$jemhUtils.wikiToHtml($comment.body.asText())
</p>
#end
#else
no comments yet
#end |
|
Labels | #foreach ($aLabel in $context.issue.fields.labels) $aLabel #end
|
Working with dates
Date timestamps | Code Block |
---|
#set( $createdStr = $comment.created.asText() )
#set( $timeStr = $createdStr.substring($createdStr.indexOf('T')+1) )
#set( $timeSplit = $timeStr.split(":"))
<h3>Comment created date: $createdStr.substring(0,$createdStr.indexOf('T')) at $timeSplit[0]:$timeSplit[1] </h3> |
|
Date (translate ISO dates) | Code Block |
---|
#set ($dateObj = $dateFormatter.getDate($comment.created.asText()))
$dateFormatter.format($dateObj, "dd/MMM/yy h:mm a") |
|
Create a custom macro
The System Macros show macros defined within JEMHC and inherited by all instances:
...
Here is a hello world “hello world” macro , which takes two parameters, accessed through $param1
and $param2
which can then be used inside the macro body.
You can define references inside macros that are then available afterwards to the caller. This is useful for flagging specific situations, which is what we will do with the issue resolved status.
...
Using the text preview again, we get to see what the rendered output showing the custom output for issue resolution looks like.
...
To further be sure this is doing the right thingtest the template, change the Preview Context to be an event that is not an issue resolution. Doing so will automatically re-render the content, and you'll find it isn't on the Resolved screen any more.
With the Preview Context and Template rendering features you can validate correct behaviour up front, saving time!
Example templates
Identifying recent attachments
...
Adding all attachments from an issue to a template could be problematic if a large quantity of attachments where are present on an issue. The following script can be used to identify if attachments where were recently added to the issue.
...