В этом руководстве показано, как печатать пользовательское поле в электронном письме. Обратите внимание, что есть открытый запрос функции для интеграции этого в Jira, который отслеживается здесь: JRA-4619.
Шаг 1. Найдите идентификатор пользовательского поля
Вы можете найти пользовательский идентификатор поля, изучив URL-адреса страниц пользовательских полей или запросив базу данных.
Изучение URL-адреса пользовательского поля страницы
- Перейдите в конфигурацию пользовательского поля в консоли администрирования Jira, как описано на странице «Настройка пользовательского поля».
- Чтобы открыть меню для пользовательского поля, щелкните значок cog.
- Наведите указатель мыши на пункт «Настройка» в меню. URL-адрес будет отображаться в нижнем колонтитуле вашего браузера. В URL-адресе будет отображаться пользовательский идентификатор поля.
Например, на этом снимке экрана идентификатор пользовательского поля равен 10000.
РИСУНОК
Запрос базы данных
Выполните следующий запрос в базе данных:
SELECT \* FROM customfield WHERE cfname LIKE '%mycustomfield%';
Где mycustomfield - ваше пользовательское имя поля.
Шаг 2. Отредактируйте шаблон Velocity
Jira поддерживает форматы html и text электронной почты. Вы должны выбрать инструкции в соответствии с форматом, установленным в вашей Jira.
Если вы используете версию EAR / WAR, внесите изменения в каталог edit-webapp, а затем перестройте и повторно разверните WAR-файл.
Текстовый формат
- Найдите шаблон Velocity типа электронной почты, который вы хотите изменить. Например, вы можете захотеть изменить шаблон issue created, как и шаблон повторно использованный в issue commented. Они расположены здесь:
atlassian-jira/WEB-INF/classes/templates/email/text/issuecreated.vm
atlassian-jira/WEB-INF/classes/templates/email/text/includes/issuesummary.vm
- Добавьте следующий фрагмент, в который вы хотите, чтобы он отображался в файле:
#set ($customfield = $customFieldManager.getCustomFieldObject("customfield_10000"))
#if ($issue.getCustomFieldValue($customfield))
$stringUtils.leftPad($customfield.name, $padSize): $issue.getCustomFieldValue($customfield)
#end
Вы можете найти javadoc для $ stringUtils.leftPad здесь: StringUtils.
- Перейдите к atlassian-jira / WEB-INF / classes / templates / email / text / includes /, добавьте следующее в файл issuesummary.vm:
#set ($customfield = $customFieldManager.getCustomFieldObject("customfield_10000"))
#if ($issue.getCustomFieldValue($customfield))
$stringUtils.leftPad($customfield.name, $padSize): $issue.getCustomFieldValue($customfield)
#end
Обратите внимание, что вам нужно изменить идентификатор пользовательского поля на идентификатор, найденный на шаге 1. В примере идентификатор 10000, ваш, вероятно, будет другим.
- Если вы хотите перебрать все связанные пользовательские поля, вы можете использовать следующий пример:
#foreach ($value in $customFieldManager.getCustomFieldObjects($issue))
>$stringUtils.leftPad($value.getName(), $padSize): $!value.getValueFromIssue($issue)
#end
Формат Html
- Найдите шаблон Velocity типа электронной почты, который вы хотите изменить. Например, вы можете изменить шаблон issue created, который находится здесь:
atlassian-jira/WEB-INF/classes/templates/email/html/issuecreated.vm
- Добавьте следующий фрагмент, в который вы хотите, чтобы он отображался в файле:
#parse("templates/email/html/includes/fields/customfield.vm")
- Перейдите к atlassian-jira / WEB-INF / classes / templates / email / html / includes / fields / и создайте новый файл Velocity customfield.vm.
- Добавьте в файл следующий код:
#disable_html_escaping()
#set ($customfield = $customFieldManager.getCustomFieldObject("customfield_10000"))
#if($issue.getCustomFieldValue($customfield))
<tr>
<th>#text($customfield.name):
</th>
<td class="has-icon">
$textutils.htmlEncode($issue.getCustomFieldValue($customfield), false)
</td>
</tr>
#end
Обратите внимание, что вам нужно изменить идентификатор пользовательского поля на идентификатор, найденный на шаге 1. В примере идентификатор 10000, ваш, вероятно, будет другим.
Шаг 3. Перезапустите Jira
- Чтобы изменения вступили в силу, перезапустите Jira.
Если вы хотите избежать постоянных перезапусков во время тестирования, перейдите к atlassian-jira / WEB-INF / classes /, откройте файл velocity.properties и отредактируйте следующий раздел, как говорится в комментарии:
# To enable autoreloading, set cache to false and uncomment the autoreload line
class.resource.loader.cache=true
#velocimacro.library.autoreload=true
По материалам Atlassian JIRA Server Developer Adding custom fields to email