Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

In case you want to render issue link information in your email, you must edit your email templates. Rendering issue links requires a complex processing logic. The key is $!issue.linkCollection that returns a LinkCollection object if there are linked issues ortherwise null.

Below are example template code fragments that will render issue link information in HTML or TEXT emails.

When selecting "Linked Issues" in the Field Picker dropdown, you will get instructions on how to easily include issue link information in the template.

In case you want a customized display (e.g. include more attributes of the linked issues), then you can start to add these template fragments directly into your templates and customize them according to your needs.

JIRA Security Applied

The LinkCollection will return the linked issues as the email sender sees them. The sender may not be privileged to view all linked issues in JIRA. If this is the case, the email may not list all linked issues either.

Insert issue links

Add as $!issue.linkCollection. It returns an LinkCollection object which provides methods to explore linked issues, link types, etc.

The LinkCollection contains the linked issues as the email sender sees them. As the sender may not be privileged to view all linked issues in JIRA, the collection will not render issues hidden to the sender. 

To render as HTML add: #parse('templates/emailissue/email/html/issue-links.vm') 
To render as Text add: #parse('templates/emailissue/email/text/issue-links.vm')

To have full control over the rendering of linked issues, insert the below code fragments into your template instead of parsing the rendering methods as above.

Render issue link information in HTML emails
#set ($lc = $!issue.linkCollection)
#if ($!lc)
 <tr valign="top">
  #if ($!isJIRA61OrLater)
     <th><strong style="font-weight:normal;color:${textSubtleColour};">Links:</strong></th>
     <td>
  #else
      <td style="color:${textColour};font-family:${textFontFamily};font-size:${textSize};padding:0 10px 10px 0;white-space:nowrap;"><strong style="font-weight:normal;color:${textSubtleColour};">Links:</strong></td>
      <td style="color:${textColour};font-family:${textFontFamily};font-size:${textSize};padding:0 0 10px 0;width:100%;">
  #end
    #foreach ($linkType in $lc.linkTypes)
      #set($outwardIssues = $lc.getOutwardIssues($linkType.name))
      #set($inwardIssues = $lc.getInwardIssues($linkType.name))
      #if($!outwardIssues && $!outwardIssues.size()>0)
      <dl>
        <dt><p style="font-weight: bold"></progress>$linkType.outward</p></dt>
        #foreach ($outwardLinkedIssue in $!outwardIssues)
        <dd>
            <div style="display:table;">
              <a style='color:${textLinkColour};text-decoration:none;' href='${baseurl}/browse/${outwardLinkedIssue.getKey()}'>$outwardLinkedIssue.getKey()</a>
              <span style="white-space: nowrap;">$outwardLinkedIssue.summary</span>
            </div>
        </dd>
        #end
      </dl>
        $!outwardIssues.clear()
      #end
      #if($!inwardIssues && $!inwardIssues.size()>0)
      <dl>
        <dt><p style="font-weight: bold"></progress>$linkType.inward</p></dt>
        #foreach ($inwardLinkedIssue in $!inwardIssues)
          <dd>
            <div style="display:table;">
              <a style='color:${textLinkColour};text-decoration:none;' href='${baseurl}/browse/${inwardLinkedIssue.getKey()}'>$inwardLinkedIssue.getKey()</a> <span style="white-space: nowrap;">$inwardLinkedIssue.summary</span>
            </div>
          </dd>
        #end
      </dl>
        $!inwardIssues.clear()
      #end
    #end
  </td>
</tr>
#end
Render issue link information in TEXT emails
#set ($lc = $!issue.linkCollection)
#if ($!lc)
Links:
#foreach ($linkType in $!lc.linkTypes)
#set($outwardIssues = $!lc.getOutwardIssues($linkType.name))
#set($inwardIssues = $!lc.getInwardIssues($linkType.name))
#if($!outwardIssues && $!outwardIssues.size()>0)
${linkType.outward}:
#foreach ($outwardLinkedIssue in $!outwardIssues)
$stringUtils.leftPad($outwardLinkedIssue.summary, $padSize): ${baseurl}/browse/${outwardLinkedIssue.getKey()}
#end
$!outwardIssues.clear()
#end
#if($!inwardIssues && $!inwardIssues.size()>0)
${linkType.inward}:
#foreach ($inwardLinkedIssue in $!inwardIssues)
$stringUtils.leftPad($inwardLinkedIssue.summary, $padSize): ${baseurl}/browse/${inwardLinkedIssue.getKey()}
#end
$!inwardIssues.clear()
#end
#end
#end	
  • No labels