我想在我的JIRA工作日志对话框/屏幕中添加一个包含一些元素的组合框。组合框将在工作描述前添加一个字符串(如" [DEV] - ")。
看起来很简单,但我在Jira文档中找不到教程......
我见过这个名为Tempo的插件。但我想自己做这件事。不使用其他插件。
我正在考虑编辑jira的JSP页面,但我意识到当我更新jira版本时,我将不得不再次编辑JSP。所以,我认为最好的方法是开发一个插件。但我不知道如何。
答案 0 :(得分: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>
然后我使用了Atlassian提供的Servlet-Filter插件模块,并且过滤器配置为应用于匹配模式/secure/CreateWorklog.jspa的URL。这是在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,所以我在我的插件的META-INF / spring /目录中放了一个spring.xml文件,我的DataSource需要jars,META-INF / lib目录下需要数据库驱动程序。在spring.xml中配置的JdbcTemplate被放入OSGi包中(我认为),然后将其注入到我的ServletFilter实现的构造函数中。
答案 1 :(得分:2)
为了帮助其他尝试和我一样的人。我将描述我在Jira的日志工作中添加自定义字段所做的工作......
首先,您需要找到设置工作日志页面的de JSP文件。您可以通过HTML添加自定义字段e通过JavaScript执行工作。
Jira使用了一个名为WebWork的弃用框架,因此自定义屏幕的最佳方法是使用简单的HTML。
无论如何,这是一个不想使用Tempo插件的选项。
答案 2 :(得分:0)
我们选择使用Tempo在ServiceRocket上执行此操作,我们建议客户使用附加组件(插件)。一般而言,从长远来看,对两条信息(工作类型和工作描述)使用单一字段(工作描述)并不是一个好主意。