Создание элемента панели инструментов

Это руководство поможет вам создать элемент панели инструментов для надстройки Jira P2. Вы должны быть знакомы с созданием надстроек Jira P2 для использования этого руководства.

Если вы создаете элемент панели инструментов для приложения Jira Connect, см. это руководство: Создание элемента панели инструментов для надстройки Jira Connect.

Элемент панели инструментов похож на гаджет, поскольку он предоставляет дискретный динамический контент, который пользователь может использовать для настройки своей панели управления. Однако элементы панели инструментов используют современные технологии рендеринга, такие как AMD, Soy, LESS и т. д. Элементы панели мониторинга также могут обмениваться веб-ресурсами, что значительно повышает производительность загрузки страниц за счет сокращения количества запросов и общего размера данных, которые необходимо передать на нагрузку на приборную панель.

Элементы панели управления в конечном итоге заменят гаджеты в Jira. Их легко построить и они быстрее. Гаджеты отображаются в iframe и не могут обмениваться веб-ресурсами, что замедляет их загрузку. Гаджеты также основаны на спецификации OpenSocial, которая больше не защищена Google.

Прежде чем вы начнете

  • Если вы замените гаджет на элемент панели управления для своего приложения, не изменяйте существующий код гаджета OpenSocial. Это дает вам резервную копию, если что-то пойдет не так с вашим элементом панели управления - вы можете отключить модуль приложения для элемента панели управления, а вместо этого отобразится старый гаджет OpenSocial.
  • В отличие от гаджетов элементы панели инструментов не поддерживают удаленный доступ, например, встраивание гаджета OpenSocial из Jira на странице Confluence. На данный момент у нас нет планов по поддержке удаленного доступа к элементам панели управления.

Определение элемента панели управления

На странице элемента Dashboard (панели управления) показано, как вы должны определить элемент панели инструментов в своем дескрипторе приложения.

Общие руководящие принципы разработки

Перед разработкой элемента панели управления рекомендуется прочитать все приведенные ниже рекомендации. Это рекомендации высокого уровня, так как это руководство предназначено для опытных разработчиков приложений.

Настройка правильного контекста

В отличие от гаджетов OpenSocial элементы панели инструментов не находятся в "песочнице" (механизм защиты, включённый в состав многих программных систем, в частности виртуальной Java-машины, - специально выделенная изолированная от остальной системы среда, ограничивающая доступ и использование ресурсов, в которой можно спокойно тестировать и выполнять перед поставкой его потребителю либо проверять поведение потенциально опасных полученных из Сети программ (например, аплет); называется по аналогии с безопасным местом для детских игр.)в iframe. Следовательно, вам нужно установить правильный контекст для CSS / LESS и JavaScript вашего элемента панели инструментов, чтобы убедиться, что он не мешает другим элементам панели.

  • Убедитесь, что CSS / LESS правильно помещены в пространство имен. Это гарантирует, что стиль элемента вашей панели управления не будет мешать другим элементам панели управления на панели управления.
  • Убедитесь, что весь JavaScript работает в контексте переданного <div />. Вся JavaScript должна работать в контексте переданного <div />, когда элемент панели управления инициализируется. Это гарантирует, что обработчики событий, например, только привязаны к текущему элементу панели управления и не влияют на другие элементы панели управления.

Производительность

  • Используйте только рендеринг на стороне сервера для большей части статической информации. Все, что может стоить дорого (например, запуск JQL-запроса, генерация данных для диаграммы и т. д.), Не должно выполняться на стороне сервера, иначе это задержит рендеринг всей панели мониторинга. Вместо этого данные должны запрашиваться через запрос AJAX, а затем визуализироваться на стороне клиента.

Обмен ресурсами

  • Использование общих модулей AMD и шаблонов soy. Вы можете представить общие модули AMD и шаблоны сои, где это имеет смысл для общих элементов формы конфигурации (например, сортировщиков фильтров)

Тестирование элемента вашей панели управления

  • Модульное тестирование - мы рекомендуем тестировать весь новый код с помощью фреймворка тестирования модулей JavaScript, например QUnit.
  • Тестирование элементов «замены» панели управления- мы рекомендуем вам протестировать элемент «замены»  панели управления, создав экземпляр старого гаджета, а затем включив новый элемент панели управления. Затем вы можете проверить, совместим ли элемент вашей панели управления с предпочтениями старого гаджета.

Рекомендации по дизайну

Для элементов панели управления нет рекомендаций по проектированию. Мы рекомендуем вам ознакомиться с Руководством по дизайну Atlassian Design, как и при разработке любого атласского продукта.

Вот несколько тем, которые могут иметь отношение к вашему элементу панели инструментов:

  • Таблицы
  • Графики
  • Формы

 

По материалам Atlassian JIRA  Server Developer Building a dashboard item