Шаблоны JIRA и JSP

Если вы хотите изменить поведение 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