Создание пользовательского предустановленного фильтра

Это руководство «как» продемонстрирует, как создать  собственный пользовательский фильтр с помощью веб-фрагментов.

Предустановленный фильтр - это ссылка на навигатор задач JIRA с предопределенными атрибутами фильтра. Эти фильтры доступны в раскрывающемся меню «Фильтры» на странице резюме проекта проекта JIRA.

РИСУНОК

До JIRA 4.0 эти ссылки отображаются в «Портлете проекта» и на странице «Обзор проекта»:

РИСУНОК

Создание нового предустановленного фильтра легко и просто для добавления к вашим JIRA-плагинам. Все, что вам нужно сделать, это определить новый модуль веб-элементов в вашем atlassian-plugin.xml с атрибутом раздела, установленным на 'system.preset.filters'. JIRA автоматически добавит новую ссылку фильтра на страницу просмотра проекта browse project page и портлеты проекта project portlets. Следующий шаблон веб-элемента является минимальным, необходимым для создания предустановленного фильтра. (Подробнее см. Веб-фрагменты.)


<web-item key="[FILTER_KEY]" name="[FILTER_NAME]" section="system.preset.filters">
    <label key="[FILTER_LABEL]" />
    <link>[FILTER_URL]</link>
</web-item>

Вышеуказанные значения атрибутов (заключенные в [JIRA: 'и'] ') объясняются в документации по предварительно установленным  фильтрам. Основная задача создания предустановленного фильтра - генерировать [JIRA: FILTER_URL]. Например, следующий относительный URL-адрес представляет стандартный  предварительно установленный фильтр JIRA Outstanding.


/secure/IssueNavigator.jspa?reset=true&mode=hide&pid=10240&resolution=-1&sorter/field=updated&sorter/order=DESC

Это может показаться загадочным или громоздким для создания / изменения вручную и требует, чтобы вы точно знали, что такое поле и его значения. Наилучшим подходом к созданию этих ссылок является использование Навигатора задач для фильтрации проблем как обычно. После того как вы закончите фильтрацию задач, вы просто скопируете ссылку, предоставленную JIRA: permlink (щелкнув правой кнопкой мыши по ней и скопировав ссылку, это может зависеть от используемого вами браузера).

Пошаговый пример: «Все закрытые задачи в текущем проекте»

В этом примере будет показано, как создать новый фильтр предварительной настройки с именем Closed, который обнаруживает все задачи в статусе Closed для данного проекта.

  1. Начните с минимального модуля веб-элемента, определенного выше

<web-item key="[FILTER_KEY]" name="[FILTER_NAME]" section="system.preset.filters">
    <label key="[FILTER_LABEL]" />
    <link>[FILTER_URL]</link>
</web-item>

  1. Измените значения атрибута на нужные значения (за исключением [JIRA: FILTER_URL])

<web-item key="filter_closed" name="Closed Issues" section="system.preset.filters">
    <label key="Closed" />
    <link>[FILTER_URL]</link>
</web-item>

  1. Теперь, чтобы сгенерировать URL фильтра

        1. Перейдите в Навигатор задач и установите следующие поля поиска следующим образом:

  • Проект: выберите любой один проект (для получения идентификатора полей)
  • Статус: Закрыто

затем нажмите кнопку «Обзор» View  (или «Показать и скрыть» View & Hide)

  1. Щелкните правой кнопкой мыши на JIRA: permlink и скопируйте его целевую ссылку (вы также можете щелкнуть по ссылке permlink и скопировать из адресной строки), чтобы получить абсолютный URL. Вы должны получить что-то вроде следующего:

http://company.com:8080/contextpath/secure/IssueNavigator.jspa?reset=true&pid=10000&status=6&sorter/field=issuekey&sorter/order=DESC

  1. Нам нужно будет избежать зарезервированных символами, таких как амперсанд '&' с '&
'

http://company.com:8080/contextpath/secure/IssueNavigator.jspa?reset=true&pid=10000&status=6&sorter/field=issuekey&sorter/order=DESC">http://company.com:8080/contextpath/secure/IssueNavigator.jspa?reset=true&pid=10000&status=6&sorter/field=issuekey&sorter/order=DESC

  1. (Необязательно) Чтобы настроить ваш предустановленный фильтр на любой экземпляр JIRA (другой путь хоста / контекста), лучше сделать абсолютный URL-адрес с предыдущего шага на относительный. Этот шаг включает в себя простое удаление всего до /secure/IssueNavigator.jspa.

Относительный URL-адрес должен быть таким:


/secure/IssueNavigator.jspa?reset=true&pid=10000&status=6&sorter/field=issuekey&sorter/order=DESC

  1. Этот URL-адрес даст нам закрытые задачи для проекта с идентификатором 10000. Чтобы сделать эту динамику, мы заменим 10000 на $ helper.project.id, которая получит идентификатор текущего проекта (подробнее см. Веб-фрагменты). Итак, наш окончательный URL [JIRA: FILTER_URL] дается:

 /secure/IssueNavigator.jspa?reset=true&pid=$helper.project.id&status=6&sorter/field=issuekey&sorter/order=DESC

  1. Окончательный веб-элемент  web-item будет выглядеть примерно так:

<web-item key="filter_closed" name="Closed Issues" section="system.preset.filters">
    <label key="Closed" />
    <link>/secure/IssueNavigator.jspa?reset=true&pid=$helper.project.id&status=6&sorter/field=issuekey&sorter/order=DESC</link>
</web-item>
<web-item key="filter_closed" name="Closed Issues" section="system.preset.filters">
    <label key="Closed" />
    <link>/secure/IssueNavigator.jspa?reset=true&pid=$helper.project.id&status=6&sorter/field=issuekey&sorter/order=DESC</link>
</web-item>

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

Теперь вы можете просто добавить, что ваш atlassian-plugin.xml и «Closed» появится в виде нового элемента раскрывающегося меню «Фильтры». Если вы используете версии JIRA до 4.0, «Closed» появится на странице «Обзор проекта» и в «Портлет проекта»:

РИСУНОК

Компиляция и установка предустановленного фильтра в качестве плагина в JIRA

На приведенных выше шагах показано, как создать один модуль плагина plugin module, но это не полный плагин. Плагин JIRA - это один файл JAR (Java ARchive) с по крайней мере дескриптором плагина (файл XML, называемый atlassian-plugin.xml). Этот XML-файл содержит один или несколько модулей плагина и содержит дополнительную информацию, определяющую общие данные плагина, такие как его имя, описание, версия и т. д.

Следующий образец может использоваться в качестве шаблона для создания файла atlassian-plugin.xml.


<!-- the plugin key must be unique, think of it as the 'package' of the plugin -->
<atlassian-plugin key="com.atlassian.plugin.sample" name="Sample Plugin">
    <!-- a short block describing the plugin itself -->
    <plugin-info>
        <description>This is a brief textual description of the plugin</description>
        <!-- the version of the plugin -->
        <version>1.0</version>
        <!-- the versions of the application this plugin is for -->
        <application-version min="3.7" max="3.7"/>
        <!-- details of the plugin vendor -->
        <vendor name="Atlassian Software Systems Pty Ltd" url="http://www.atlassian.com"/>
    </plugin-info>
 
    <!-- ... Add your plugin modules here ... -->
</atlassian-plugin>

Изменив атрибуты шаблона и добавив модуль плагина предустановленного фильтра, в котором отмечен, окончательный файл будет выглядеть как присоединенный: JIRA: atlassian-plugin.xml.

  1. Теперь atlassian-plugin.xml нужно упаковать в виде одного JAR-файла. Существуют различные способы сделать это, два простых способа:
  • В командной строке с установленной jar запустите следующую команду (с atlassian-plugin.xml в текущем каталоге):

jar -cvf plugin-name.jar atlassian-plugin.xml

ИЛИ

  • Добавьте файл atlassian-plugin.xml в ZIP-файл (например, используя WinZip / WinRAR), затем переименуйте ZIP-файл с расширением .jar (то есть переименуйте file.zip в file.jar)

Последний файл jar должен выглядеть примерно как JIRA: preset-filter-example-plugin.jar

  1. Чтобы установить JAR-файл:
    1. Завершите JIRA
    2. скопируйте файл jar в '... / atlassian-jira / WEB-INF / lib /'
    3. Запустите JIRA.
    4. Перейдите в «Администрирование> Плагины» и убедитесь, что плагин указан и включен (найдите имя, указанное в atlassian-plugin.xml - например, Sample Plugin).
    5. Наслаждайтесь!

Обратите внимание, что описанные выше шаги действительны только для упаковки базовых плагинов, таких как предустановленные фильтры. Для более полного плагина вам может потребоваться добавить дополнительные ресурсы. Для получения дополнительной информации см. Документацию разработчика JIRA и настройку вашего проекта плагина.

  Вы можете получить полный образец плагина из Jira Plugin Development Kit, который расширяет веб-элемент, определенный выше, интернализируя его и помещая ссылку «Закрыто» под фильтром «Все».

По материалам Atlassian JIRA  Server Developer Creating a custom preset filter