Добавление пользовательских полей в электронную почту

В этом руководстве показано, как печатать пользовательское поле в электронном письме. Обратите внимание, что есть открытый запрос функции для интеграции этого в Jira, который отслеживается здесь: JRA-4619.

Шаг 1. Найдите идентификатор пользовательского поля

Вы можете найти пользовательский идентификатор поля, изучив URL-адреса страниц пользовательских полей  или запросив базу данных.

Изучение URL-адреса пользовательского поля страницы

  1. Перейдите в конфигурацию пользовательского поля в консоли администрирования Jira, как описано на странице «Настройка пользовательского поля».
  2. Чтобы открыть меню для пользовательского поля, щелкните значок cog.
  3. Наведите указатель мыши на пункт «Настройка» в меню. URL-адрес будет отображаться в нижнем колонтитуле вашего браузера. В URL-адресе будет отображаться пользовательский идентификатор поля.

Например, на этом снимке экрана идентификатор пользовательского поля равен 10000.

РИСУНОК

Запрос базы данных

Выполните следующий запрос в базе данных:


SELECT \* FROM customfield WHERE cfname LIKE '%mycustomfield%';

Где mycustomfield - ваше пользовательское имя поля.

Шаг 2. Отредактируйте шаблон Velocity

Jira поддерживает форматы html и text электронной почты. Вы должны выбрать инструкции в соответствии с форматом, установленным в вашей Jira.

Если вы используете версию EAR / WAR, внесите изменения в каталог edit-webapp, а затем перестройте и повторно разверните WAR-файл.

Текстовый формат

  1. Найдите шаблон 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

  1. Добавьте следующий фрагмент, в который вы хотите, чтобы он отображался в файле:

#set ($customfield = $customFieldManager.getCustomFieldObject("customfield_10000"))
#if ($issue.getCustomFieldValue($customfield))
$stringUtils.leftPad($customfield.name, $padSize): $issue.getCustomFieldValue($customfield)
#end

Вы можете найти javadoc для $ stringUtils.leftPad здесь: StringUtils.

 

  1. Перейдите к 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, ваш, вероятно, будет другим.

 

  1. Если вы хотите перебрать все связанные пользовательские поля, вы можете использовать следующий пример:

#foreach ($value in $customFieldManager.getCustomFieldObjects($issue))
>$stringUtils.leftPad($value.getName(), $padSize): $!value.getValueFromIssue($issue)
#end

Формат Html

  1. Найдите шаблон Velocity типа электронной почты, который вы хотите изменить. Например, вы можете изменить шаблон issue created, который находится здесь:

atlassian-jira/WEB-INF/classes/templates/email/html/issuecreated.vm

  1. Добавьте следующий фрагмент, в который вы хотите, чтобы он отображался в файле:

#parse("templates/email/html/includes/fields/customfield.vm")

  1. Перейдите к atlassian-jira / WEB-INF / classes / templates / email / html / includes / fields / и создайте новый файл Velocity customfield.vm.
  2. Добавьте в файл следующий код:

#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

  1. Чтобы изменения вступили в силу, перезапустите 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