Если вы хотите изменить поведение JIRA, изменив шаблоны JSP или Velocity, вы можете сделать это просто, изменив файлы в дистрибутиве JIRA. JIRA будет получать изменения в своих JSP при следующем отображении страницы: перезагрузка не требуется. С другой стороны, вам нужно будет перезапустить JIRA, чтобы увидеть изменения в шаблонах Velocity.
Однако имейте в виду, что в следующий раз, когда вы обновляете JIRA или вам нужна новая установка по любой причине, вам придется вручную скопировать все изменения, внесенные вами в JSP или шаблоны, в новую установку JIRA. Если JSP или шаблоны изменились в новой версии, вам придется перенести свою настройку в них.
Шаблоны Velocity
Velocity - это язык шаблонов на стороне сервера, используемый JIRA для отображения содержимого страницы. Velocity позволяет вызывать Java-объекты наряду со стандартным HTML. В следующей таблице перечислены контексты Velocity, доступные для использования в представлениях XML-дескриптора и Velocity.
|
|
user |
В настоящее время вошел в систему.
Тип: Пользователь. |
helper |
Удобный класс, который содержит информацию, такую как текущий запрос (request) и выбранный проект.
Тип: JiraHelper. |
xmlutils |
Утилиты для простого чтения XML.
Тип: XMLUtils. |
textutils |
Утилиты для обычных манипуляций с строками.
Тип: TextUtils. |
urlcodec |
Утилита для кодирования строки.
Тип: JiraUrlCodec. |
outlookdate |
Класс, чтобы дать хорошее строковое представление даты.
Тип: OutlookDate. |
authcontext |
Пользовательский подчиненный класс утилиты региона. Можно получить текущего пользователя, регион, I18nBean (для интернационализации) и OutlookDate.
Тип: JiraAuthenticationContext. |
dateutils |
Утилиты для отображения даты / времени.
Тип: DateUtils. |
externalLinkUtil |
Простой класс утилиты, который позволяет вам разрешать внешние ссылки, которые могут потребоваться изменить, из-за партнерских сайтов и т. д.
Тип: ExternalLinkUtil. |
requestContext |
Контекст, который допускает различные реализации в зависимости от того, выполняется ли они в рамках веб-запроса (request) или по электронной почте.
Тип: VelocityRequestContext. |
req |
текущий запрос
Тип: HttpServletRequest. |
baseurl |
Основной URL для этого экземпляра (speedRequestContext.getBaseUrl ()).
Тип: Строка. |
Содержание контекста Velocity
Содержимое контекста Velocity, используемого для обработки веб-шаблонов и шаблонов электронной почты, приведено ниже.
Веб-шаблоны
Это список содержимого контекста Velocity, используемого для обработки веб-шаблонов.
Переменная Velocity и объект JIRA / значение |
Описание |
Как версия |
Условие |
constantsManager
com.atlassian.jira.config .ConstantsManager |
Менеджер по типам задач, статусам, приоритетам и разрешениям. |
3.4 |
всегда присутствует |
projectManager
com.atlassian.jira.project .ProjectManager |
Реализации этого интерфейса отвечают за все управление сущностями проекта в JIRA. |
3.4 |
всегда присутствует |
customFieldManager
com.atlassian.jira.issue .CustomFieldManager |
Функции для работы с CustomFields |
3.5 |
всегда присутствует |
applicationProperties
com.atlassian.jira.config.properties .ApplicationProperties |
обеспечивает доступ к свойствам JIRA, хранящимся в БД |
3.4 |
всегда присутствует |
jirautils
com.atlassian.jira.util.JiraUtils |
Различные методы утилиты. |
3.4 |
всегда присутствует |
jirakeyutils
com.atlassian.jira.util.JiraKeyUtils |
утилиты для определения валидности ключей проекта / версии JIRA |
3.4 |
всегда присутствует |
buildutils
com.atlassian.jira.util.BuildUtils |
предоставляет информацию о текущей версии JIRA |
3.4 |
всегда присутствует |
velocityhelper
com.atlassian.jira.util .JiraVelocityHelper |
Простые методы хранения класса, которые мы хотим выставить шаблонам velocity |
3.4 |
всегда присутствует |
userutils
com.atlassian.core.user.UserUtils |
Класс-утилита для работы с пользователями. |
3.4 |
всегда присутствует |
textutils
com.opensymphony.util.TextUtils |
множество полезных методов для манипулирования текстом |
3.4 |
всегда присутствует |
params
java.util.Map |
параметры IssueEvent, которые вызвали это уведомление по электронной почте |
3.4 |
всегда присутствует |
issue
org.ofbiz.core.entity .GenericValue |
GenericValue, представляющий задачу, вызвавшую это уведомление по электронной почте |
3.4 |
всегда присутствует |
issueObject
com.atlassian.jira.issue .MutableIssue |
объект «Задача», представляющий задачу, вызвавшую это уведомление по электронной почте |
3.5.2
|
всегда присутствует |
remoteUser
com.opensymphony.user.User |
зарегистрированный пользователь, если они существуют |
3.4 |
remoteUser != null |
renderedDescription
java.lang.String |
поле визуализированного описания, указано средство визуализации |
3.4 |
рендерер, заданный для задачи и поля |
renderedEnvironment
java.lang.String |
поле визуализированной среды, указано средство визуализации |
3.4 |
рендерер, заданный для задачи и поля |
timeoriginalestimate
java.lang.String |
Значение DateUtils .getDurationPretty для timeoriginalestimate из задачи или «None», если значение null |
3.4 |
всегда присутствует |
timeestimate
java.lang.String |
Значение DateUtils .getDurationPretty временной оценки из задачи или «Нет», если значение null |
3.4 |
всегда присутствует |
timespent
java.lang.String |
Значение DateUtils .getDurationPretty потраченного времени из задачи или «Нет», если значение null |
3.4 |
всегда присутствует |
duedate
java.sql.Timestamp |
Время выполнения (Срок)из задачи |
3.4 |
всегда присутствует |
versions
List( org.ofbiz.core.entity .GenericValue ) |
Список GenericValues, представляющий затронутые версии задачи |
3.4 |
всегда присутствует |
fixfors
List( org.ofbiz.core.entity .GenericValue ) |
Список GenericValues, представляющих исправления версий задачи |
3.4 |
всегда присутствует |
components
List( org.ofbiz.core.entity .GenericValue ) |
Список GenericValues, представляющий Компоненты задачи |
3.4 |
всегда присутствует |
assignee
com.opensymphony.user.User |
представитель задачи |
3.4 |
assignee != null |
reporter
com.opensymphony.user.User |
Репортер задачи |
3.4 |
reporter != null |
renderedComment
java.lang.String |
поле рендеринга комментариев, оно указано в рендерере. Комментарий - комментарий, связанный с изменением |
3.4 |
созданы рендерер, заданный для задачи и поля, и комментарий |
comment
org.ofbiz.core.entity .GenericValue |
общее значение, представляющее комментарий, связанный с изменением |
3.4 |
комментарий создан |
commentauthor
com.opensymphony.user.User |
Автор комментария |
3.4 |
комментарий создан |
timelogged
java.lang.String |
Значение DateUtils .getDurationPretty timelogged из задачи или «Нет», если значение null |
3.4 |
всегда присутствует |
changelog
org.ofbiz.core.entity .GenericValue |
общее значение, представляющее журнал изменений, связанный с изменением |
3.4 |
changelog != null |
changelogauthor
com.opensymphony.user.User |
Автор журнала изменений задач |
3.4 |
changelog != null |
visibilitylevel
java.lang.String |
Уровень безопасности комментария |
3.4 |
комментарий создан |
i18n
com.atlassian.jira.util.I18nHelper |
Боб, который ищет текст i18n в JiraWebActionSupport .properties |
3.4 |
всегда присутствует |
dateutils
com.atlassian.core.util.DateUtils |
методы для работы с датами |
3.4 |
всегда присутствует |
attachments
List( org.ofbiz.core.entity .GenericValue ) |
список общих значений, представляющих вложения, связанные с задачей |
3.4 |
всегда присутствует |
security
org.ofbiz.core.entity .GenericValue |
общее значение, представляющее уровень безопасности, если таковой имеется, связанный с этой задачей |
3.4 |
if( isEnterpriseEdition ) |
mailPluginsHelper
com.atlassian.jira.mail .JiraMailPluginsHelperImpl |
обеспечивает доступ к isPluginModuleEnabled () |
3.7 |
всегда присутствует |
Шаблоны электронной почты
Это список содержимого контекста Velocity, используемого для обработки шаблонов электронной почты.
- TemplateContext обеспечивает доступ к некоторым общим объектным ссылкам для использования в шаблонах - например. Утилиты, данные журнала изменений и т. д.
- TemplateIssue предоставляет доступ к объекту Issue (Задача), дополнительно расширяемый вспомогательными методами для отображения информации в визуализированном HTML-формате (например, среда, описание и комментарии) и пользователей, которые могут не существовать в системе. Все детали, связанные с задачей, можно получить из TemplateIssue.
В следующих таблицах перечислены другие объекты, которые также доступны в контексте:
Переменная Velocity &Объект / значение JIRA |
Описание |
userutils
com.atlassian.core.user .UserUtils |
сбор утилитарных методов для запрашивания(querying), создания и удаления пользователей |
velocityhelper
com.atlassian.jira.util .JiraVelocityHelper |
набор различных методов (например, urlencode, indentTextBlock, printChangelog |
textutils
com.opensymphony.util .TextUtils |
сбор утилитных функций для манипулирования текстом |
constantsManager
com.atlassian.jira.config .ConstantsManager |
Константы JIRA для приоритетов, резолюций, типов задач, статусов |
projectManager
com.atlassian.jira.project .ProjectManager |
управление сущностями проекта (например, getProjectByName, getComponents, getCategories) |
customFieldManager
com.atlassian.jira.issue .CustomFieldManager |
функции для работы с пользовательскими полями |
applicationProperties
com.atlassian.jira.config.properties .ApplicationProperties |
доступ к свойствам приложения JIRA |
jirautils
com.atlassian.jira.util .JiraUtils |
несколько различных полезных методов (например, isPublicMode, isSetup) |
jirakeyutils
com.atlassian.jira.util .JiraKeyUtils |
методы работы с ключами проекта |
buildutils
com.atlassian.jira.util .BuildUtils |
buildutils больше не доступен в контексте. вместо этого следует использовать переменную build (см. ниже) |
build
com.atlassian.jira.util .BuildUtilsInfo |
Поскольку информация о создании и издании JIRA 6.1 JIRA |
jiraUserUtils
com.atlassian.jira.user.util .UserUtil |
операции уровня пользователя (например, getActiveUserCount, getDisplayableNameSafely, addUserToGroup) |
mailPluginsHelper
com.atlassian.jira.mail .JiraMailPluginsHelperImpl |
метод проверки включенности плагинов |
userformat
com.atlassian.jira.plugin.profile .UserFormatManager |
форматирование имен пользователей |
context
com.atlassian.jira.mail .TemplateContext |
Сам объект контекста шаблона |
issue
com.atlassian.jira.mail .TemplateIssue |
Объект «Задача» с расширенными вспомогательными методами для отображения - это задача, для которой было инициировано событие уведомления по электронной почте |
params
java.util.Map |
Параметры IssueEvent, которые вызвали это уведомление по электронной почте |
remoteUser
com.opensymphony.user.User |
Пользователь, вызвавший это событие |
stringUtils
org.apache.commons.lang .StringUtils |
Объект Utility, предоставляющий методы форматирования |
padSize
java.lang.Integer |
Используется в текстовых сообщениях для заполнения экрана(отображения) |
timeSpentFieldId
java.lang.String |
Идентификатор TimeSpentField - используется в списке изменений для зарегистрированных в журнале уведомлений |
attachments
Collection( org.ofbiz.core.entity.GenericValue ) |
Коллекция общих значений, представляющих вложения, связанные с задачей |
htmlComment
java.lang.String |
Комментарий, связанный с этим событием, как отображаемая(rendered) отформатированная строка в формате HTML. Базовая строка возвращается, если комментарий не может быть правильно отображен (rendered)- включая ссылки для любых связанных с JIRA задач. |
comment
com.atlassian.jira.issue.comments .Comment |
Комментарий, связанный с этим событием. Тело комментария будет сырым необработанным комментарием, введенным пользователем (например, сырой разметкой wiki) |
commentauthor
com.opensymphony.user.User |
Автор комментария |
roleVisibilityLevel
java.lang.String |
Уровень роли проекта в комментарии (перезаписан рабочим журналом) |
groupVisibilityLevel
java.lang.String |
Уровень группы комментариев (перезаписанный рабочим журналом) |
originalhtmlComment
java.lang.String |
|
originalcommentauthor
com.opensymphony.user.User |
|
originalroleVisibilityLevel |
комментарий (переписанный рабочим журналом) |
originalgroupVisibilityLevel |
комментарий (переписанный рабочим журналом) |
worklog
com.atlassian.jira.issue.worklog .Worklog |
|
timeSpentUpdated
java.lang.Boolean |
|
startDateUpdated
java.lang.Boolean |
|
commentUpdated
java.lang.Boolean |
|
visibilityUpdated
java.lang.Boolean |
|
originalworklog
com.atlassian.jira.issue.worklog .Worklog |
|
changelog
org.ofbiz.core.entity.GenericValue |
Общее значение, представляющее журнал изменений, связанный с изменением |
changelogauthor
com.opensymphony.user.User |
Автор журнала изменений |
security
org.ofbiz.core.entity.GenericValue |
Общее значение, представляющее уровень безопасности, если таковой имеется, связанный с этой задачей |
rendererManager
com.atlassian.jira.issue .RendererManager |
Позволяет использовать средства визуализации, такие как wiki renderer. (например, $ rendererManager.getRenderedContent («atlassian-wiki-renderer», «жирная вики», $ issue.getIssueRenderContext ())) |
recipient
com.opensymphony.user.User |
Получатель электронной почты |
i18n
com.atlassian.jira.utilI .I18nHelper |
i18n помощник перевода для текущего получателя |
dateformatter
com.atlassian.jira.web.util .OutlookDate |
Форматир даты и времени для локали текущего получателя |
eventTypeName
java.lang.String |
Доступно от JIRA 4.1. Имя типа локализованного события. (Например, для события Assault Assigned будет использоваться ключ mail.event.type.issueassigned.name.) Если перевод недоступен, будет использоваться имя типа события |
attachmentsManager
com.atlassian.jira.mail.util .MailAttachmentsManager |
Доступно от JIRA 7.0.3. Если этот объект присутствует, менеджер почтовых вложений можно использовать для добавления вложений в электронное письмо и создания Content-ID для этих вложений. |
Связанные учебные пособия
В следующих руководствах приводятся рекомендации и приведены примеры того, как изменять JSP JARA и шаблоны:
- Добавление пользоватнльских полей в электронную почту
- Добавление JavaScript ко всем страницам Google Analytics
- Создание пользовательского шаблона заметок релиза, содержащего комментарии к релизу
- Настраиваемый интерфейс, основанный на роли пользователя
- Настройка вывода JIRA Excel