Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We'll show how to obtain a Preview Context used with Templates at edit time for render checking.  In this example, we'll add custom content for the resolution of an issue. By default there are only Created, Updated and Deleted event templates, so this will be a modification to the Updated event template.

  1. Collect the webhook data as Convert a received webhooks from JEMHC > Auditing > Events, into a Preview Context that can be used with TemplateSets.

  2. Create Custom Macro to provide detection logic and rendering of required content

...

Go to Auditing > Events and locate an issue that has been resolved : and sent

(warning) We just noticed that its possible to create a Preview Context from a queuing event which wont work - ensure the event was ‘sent’ which will fill in parts of the issue data like the description. This will be fixed in an upcoming release.

...

An event entry will look something like this:

...

Most properties lie under the $context.issue.fields prefix, as shown:

field

expression

Issue Key

$context.issue.key.asText()

Project Key

Code Block
$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.reporter.displayName.asText

()Comment

(

if present

)

$context.issue.fields.comment

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

Sprint name


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 the custom macro

The System Macros show macros defined within JEMHC and inherited by all instances:

...

Page Properties
hiddentrue


Related issues