Как добавить настраиваемое поле в диалоговое окно рабочего журнала Jira

Я хочу добавить поле со списком с некоторыми элементами в диалоговом окне/экране рабочего журнала JIRA. Поле со списком добавит строку (например, «[DEV] -») перед описанием работы.

Это кажется простым, но я не могу найти учебник в документации Jira...

Я видел этот плагин под названием Tempo. Но я хочу сделать это самостоятельно. Не использовать другие плагины.

Я думаю о редактировании JSP-страниц jira, но понял, что когда я обновлю версию jira, мне придется снова редактировать JSP. Итак, я думаю, что лучший способ — разработать плагин. Но я не знаю как.


person lucasbraum    schedule 23.04.2014    source источник


Ответы (3)


Мое решение этой проблемы состояло в том, чтобы добавить новые поля в файл logwork.jsp. Это код для текстового поля и раскрывающегося списка.

        <page:applyDecorator name="auifieldgroup">
            <aui:textfield id="'numberOfDefects'" label="text('Number Of Defects')" mandatory="'false'" name="'numberOfDefects'" size="'short'" theme="'aui'" /><br>
        </page:applyDecorator>
        <page:applyDecorator name="auifieldgroup">
                <label for="select-example">Development Phase</label>
                <select class="select" id="developmentPhase" name="developmentPhase">
                    <option>testing</option>
                    <option>configuration</option>
                    <option>development</option>
                </select>
        </page:applyDecorator>

Затем я использовал подключаемый модуль Servlet-Filter, предоставленный Atlassian, и фильтр был настроен для применения к URL-адресам, соответствующим шаблону /secure/CreateWorklog.jspa. Это в atlassian-plugin.xml.

  <servlet-filter name="Create Worklog Servlet Filter" i18n-name-key="create-worklog-servlet-filter.name" key="create-worklog-servlet-filter" class="com.pelletier.jira.servlet.filter.CreateWorklogServletFilter" location="before-dispatch" weight="200">
     <description key="create-worklog-servlet-filter.description">The Create Worklog Servlet Filter Plugin</description>
     <url-pattern>/secure/CreateWorklog.jspa</url-pattern>
     <dispatcher>REQUEST</dispatcher>
  </servlet-filter>

Затем в моем классе Servlet-Filter я смог получить новые параметры из запроса и записать их в свою базу данных. (К сожалению, не Jira, я слышал, что это не одобряется)

public class CreateWorklogServletFilter implements Filter {


private JdbcTemplate jdbcTemplate = null;

//OSGi injects the JdbcTemplate
public CreateWorklogServletFilter(JdbcTemplate jdbcTemplate) {
    this.jdbcTemplate = jdbcTemplate;
}

@Override
public void init(FilterConfig filterConfig) throws ServletException {
}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    chain.doFilter(request, response);

    //do stuff with new params from modified jsp
}

@Override
public void destroy() {
}

Я знаком с Spring, поэтому я поместил файл spring.xml в каталог META-INF/spring/ моего плагина, а jar-файлы, необходимые для моего источника данных, и драйвер базы данных в каталог META-INF/lib. JdbcTemplate, настроенный в spring.xml, помещается в пакет OSGi (я думаю), который затем внедряет его в конструктор моей реализации ServletFilter.

person Ryan Pelletier    schedule 17.08.2015

Для того, чтобы помочь другим людям, которые пытаются так же, как я. Я опишу, что я сделал, чтобы добавить настраиваемое поле в журнал работы Jira...

Прежде всего, вам нужно будет найти JSP-файл, устанавливающий страницу рабочего журнала. Вы можете добавить свое настраиваемое поле с помощью HTML и выполнить работу с помощью JavaScript.

Jira использует устаревший фреймворк под названием WebWork, поэтому лучший способ настроить экраны — использовать простой HTML.

В любом случае, это вариант для тех, кто не хочет использовать Tempo Plugin.

person lucasbraum    schedule 30.04.2014

Мы решили использовать Tempo для этого в ServiceRocket и рекомендуем это дополнение (плагин) для наших клиентов. Как правило, использование одного поля (описание работы) для двух частей информации (тип работы и описание работы) не является хорошей идеей в долгосрочной перспективе.

person mdoar    schedule 24.04.2014