Добавить плагин в выбор формы создания задачи
Слот issue.create.form добавляет карточку плагина в выбор формы для выбранной очереди на странице создания задачи. При нажатии на карточку плагин открывается на отдельной странице и может предложить свой способ создания задачи.
![]()
Для боковой панели создания задачи предусмотрен отдельный слот drawer.issue.create.form. Его карточка также появляется среди форм, но плагин открывается внутри панели. Если плагин должен работать в обоих местах, объявите оба слота в манифесте.
Слот issue.create.form работает на десктопной странице создания задачи. В мобильной версии карточка плагина не показывается. Компактный выбор формы /issueCard/create также не показывает плагины.
Подключите слоты
Создайте проект командой weavix create и выберите шаблон issue.create.form. Шаблон добавит оба слота. Если проект уже существует, добавьте нужные слоты в manifest.json:
{
"permissions": {
"data": ["tracker:issues:write"]
},
"slots": {
"tracker": {
"issue.create.form": [
{
"entrypoint": "index.html",
"contextLevel": "full",
"title": {"ru": "Создать задачу с плагином", "en": "Create an issue with a plugin"}
}
],
"drawer.issue.create.form": [
{
"entrypoint": "index.html",
"contextLevel": "full",
"title": {"ru": "Создать задачу с плагином", "en": "Create an issue with a plugin"}
}
]
}
}
}
Это фрагмент манифеста: сохраните остальные обязательные поля вашего проекта. Для создания задачи через API Трекера плагину нужно разрешение tracker:issues:write. Оно не расширяет права пользователя: задача создается в пределах его доступа. Подробнее о полях манифеста — в разделе Конфигурация плагина.
Шаблон содержит заготовку интерфейса, но не создает задачу. Добавьте необходимые поля и вызов API в код плагина.
Подключите плагин к очереди и откройте страницу создания задачи с этой очередью. Карточка плагина появится рядом с обычными формами. В заголовке открытого плагина показаны его название и метка «Плагин». Подробнее о подключении — в разделе Публикация плагина.
![]()
Получите контекст выбранной очереди
При открытии плагина задача еще не создана. В базовом контексте ключ выбранной очереди доступен как entityId. Если в манифесте указан contextLevel: "full", получите ключ через slotContext.queue:
const { slotContext } = useTrackerPluginContext<'issue.create.form'>('full');
const queue = slotContext?.queue;
Для drawer.issue.create.form полный контекст дополнительно содержит необязательные поля:
defaultFields?: Record<string, string>— значения полей, переданные при открытии боковой панели;sourceUrlParams?: Record<string, unknown>— параметры, которые вызывающий экран передает обычной форме создания задачи. Например, календарь проекта может передать проект.
Если эти значения нужны в сценарии создания, плагин должен применить их сам. Трекер не подставляет их в задачу, созданную плагином.
Завершите работу плагина
Создайте задачу через API Трекера. Для слота боковой панели после успешного создания передайте ключ задачи в hostApi.close({ issueKey }): вызывающий экран получит результат и закроет панель. Вызов hostApi.close() без результата вернет пользователя к выбору формы.
На отдельной странице issue.create.form вызов hostApi.close() возвращает к выбору формы; специальный результат создания для этого слота не предусмотрен. Если в плагине есть несохраненные данные, вызовите hostApi.preventClose(true). При попытке уйти со страницы, сменить очередь или закрыть панель Трекер запросит подтверждение.