Email templates are velocity macro files. When email templates are used to render email body, the following Velocity context attributes are available.
Name | Type | Description |
---|---|---|
attachmentsManager | com.atlassian.jira.mail.util.MailAttachmentsManager | Manager component |
baseurl | String | Base url of the JIRA instance, set under General Configuration |
buildutils | com.atlassian.jira.util.BuildUtils | |
customfieldManager | com.atlassian.jira.issue.CustomFieldManager | Support for adding custom fields to outgoing emails |
dateformatter | com.atlassian.jira.web.util.OutlookDate | Date format support |
issue | com.atlassian.jira.mail.TemplateIssue | Issue extended with support for processing in velocity templates |
i18n | com.atlassian.jira.util.I18nHelper | I18n support |
jirakeyutils | com.atlassian.jira.util.JiraKeyUtils | |
jirautils | com.atlassian.jira.util.JiraUtils | |
remoteUser | com.atlassian.crowd.embedded.api.User | Current user running the action or null |
rendererManager | com.atlassian.jira.issue.RendererManager | |
stringUtils | org.apache.commons.lang.StringUtils | String helper methods |
textutils | com.opensymphony.util.TextUtils | JIRA's text util methods |
userutils | com.atlassian.core.user.UserUtils | |
velocityhelper | com.atlassian.velocity.VelocityHelper | |
jetiFieldRenderer | Support for field rendering in templates. See details below. | |
jetiFieldFormatter | Support for date/time formatting in templates. See details below | |
number | com.atlassian.jira.util.velocity.Numbertool | Support for Number formatting in templates. See API documentation |
currentUserInfo | $!currentUserInfo.user: current user object |
jetiFieldRenderer
Code Block | ||||
---|---|---|---|---|
| ||||
public interface FieldRenderer {
String renderCustomField(Issue issue, String fieldKey);//
String renderVersions(Collection<Version> versions);//
String renderComponents(Collection<ProjectComponent> components);//
String renderLabels(Collection<Label> labels);//
String renderSecurityLevel(GenericValue securityLevel);//
String renderIssueConstant(IssueConstant issueConstant);//
String renderUser(User user);//
String renderDateTime(Timestamp ts);//
String renderEstimate(TemplateIssue ti, I18nHelper i18n);
String renderRemainingEstimate(TemplateIssue ti, I18nHelper i18n);
String renderWorklog(TemplateIssue ti, I18nHelper i18n);
Object renderCustomFieldAsObject(Issue issue, String fieldKey);
I18nHelper getI18nBean(String locale); //Returns a I18nBean for the given locale, locale string follows java syntax
} |
Method | Description | Usage |
---|---|---|
String renderCustomField(Issue issue, String fieldKey); | Renders a custom field value as a string value | $!jetiFieldRenderer.renderCustomField($!issue, "customfield_10011") |
Object renderCustomFieldAsObject(Issue issue, String fieldKey); | Returns the value of the custom field as Raw value. The Raw or Object value allows for further processing or access to methods, and attribues | $!jetiFieldRenderer.renderCustomFieldAsObject($!issue, "customfield_10011") E.g. render the Display name attribute of a user selected in a user picker field $!jetiFieldRenderer.renderCustomFieldAsObject($!issue, "customfield_10011").getDisplayName() |
String renderVersions(Collection<Version> versions); | Renders the given versions as a comma-separated list of version names. | E.g. $!jetiFieldRenderer.renderVersions($!issue.getFixVersions()) |
String renderComponents(Collection<ProjectComponent> components); | Renders the given components as a comma-separated list of component names. | E.g. $!jetiFieldRenderer.renderComponents($!issue.getComponents()) |
String renderLabels(Collection<Label> labels); | Renders the given labels as a comma-separated list of label names. | E.g. $!jetiFieldRenderer.renderLabels($!issue.getLabels()) |
String renderSecurityLevel(GenericValue securityLevel); | Renders the name of the given Security Level object | $!jetiFieldRenderer.renderSecurityLevel($!issue.getSecurityLevel()) |
String renderIssueConstant(IssueConstant issueConstant); | Renders the name of an Issue type, Resolution, Priority or Status | $!jetiFieldRenderer.renderIssueConstant($!issue.getPriority()) |
String renderUser(User user); | Renders the DisplayName attribute of a User or Application User object safely, if null, returns empty string | $!jetiFieldRenderer.renderUser($!issue.getAssignee()) |
String renderDateTime(Timestamp ts); | Renders a Timestamp object using JIRA's default date format, DateTimeFormat.format() | E.g.
|
String renderEstimate(TemplateIssue ti, I18nHelper i18n); | Renders the issue's Original estimate in nicely readable format, like 3d 4h 5m | $!jetiFieldRenderer.renderEstimate($!issue, $i18n) |
String renderRemainingEstimate(TemplateIssue ti, I18nHelper i18n); | Renders the issue's Remaining estimate in nicely readable format, like 3d 4h 5m | $!jetiFieldRenderer.renderOriginalEstimate($!issue, $i18n) |
String renderWorklog(TemplateIssue ti, I18nHelper i18n); | Renders the issue's Logged Work Time in nicely readable format, like 3d 4h 5m | $!jetiFieldRenderer.renderWorklog($!issue, $i18n) |
I18nHelper getI18nBean(String locale); | Returns a I18nBean for the given locale, locale string follows java syntax | E.g. get the language resources for French: $!jetiFieldRenderer.getI18nBean("fr") |
jetiFieldFormatter
Code Block | ||||
---|---|---|---|---|
| ||||
public interface FieldFormatters {
//JIRA Date Formatting Options
/**
* @returns An object of https://docs.atlassian.com/software/jira/docs/api/latest/com/atlassian/jira/datetime/DateTimeFormatter.html
*/
DateTimeFormatter getJiraDateTimeFormatter();
/**
* @returns An object of https://docs.atlassian.com/software/jira/docs/api/latest/com/atlassian/jira/datetime/DateTimeFormatter.html
*/
DateTimeFormatter getJiraDateTimeFormatter(String styleName);
/**
Formats a Date object using the given formatter.
@returns formatted date string or empty string if format is not valid, never returns null
*/
String formatSafely(DateTimeFormatter dateFormat, Date value);
/**
Formats a object using the given formatter. If the value object is not a Date, it returns empty string.
@returns formatted date string or empty string if format is not valid, never returns null
*/
String formatSafely(DateTimeFormatter dateFormat, Object value);
//Java Date Formatting Options
DateFormat getJavaDateFormat();
DateFormat getJavaDateFormat(int style);
DateFormat getJavaDateFormat(int style, String locale);
DateFormat getJavaDateTimeFormat();
DateFormat getJavaDateTimeFormat(int dateStyle, int timeStyle);
DateFormat getJavaDateTimeFormat(int dateStyle, int timeStyle, String locale);
DateFormat getJavaDateTimeFormat(String pattern);
/**
Formats a object using the given DateFormat. If the value object is not a Date, it returns empty string.
@returns formatted date string or empty string if format is not valid, never returns null
*/
String formatSafely(DateFormat dateFormat, Object value);
/**
Formats a object using the given DateFormat. If the value object is not a Date, it returns empty string.
@returns formatted date string or empty string if format is not valid, never returns null
*/
String formatSafely(DateFormat dateFormat, Date value);
}
|
- DateTimeFormatter is part of the JIRA API
- DateFormat is a standard way to format dates in Java
...
Expertisefinder redirect | ||||||||
---|---|---|---|---|---|---|---|---|
|