2014-04-23 3 views
1

JIRA 작업 로그 대화 상자/화면에 몇 가지 요소가 포함 된 콤보 상자를 추가하고 싶습니다. 콤보 상자는 작업 설명 앞에 문자열 (예 : "[DEV] -")을 추가합니다.Jira 작업 로그 대화 상자에서 사용자 정의 필드를 추가하는 방법

그것은 단순하게 seens,하지만 난이 락스 문서의 튜토리얼을 찾을 수 없습니다 ...

나는 템포라는이 플러그인을 보았다. 그러나 나는 이것을 스스로하고 싶다. 다른 플러그인을 사용하지 않습니다.

jira의 JSP 페이지를 편집하는 방법에 대해 생각하고 있습니다.하지만 jira 버전을 업데이트하면 JSP를 다시 편집해야한다는 것을 알았습니다 ... 그래서 가장 좋은 방법은 플러그인을 개발하는 것입니다. 그러나 나는 어떻게 모른다 :/

누군가 나를 도울 수 있습니까? 죄송합니다. 영어로 불편을 끼쳐 드려 죄송합니다. P

답변

1

나와 같은 것을 시도하는 다른 사람들을 돕기 위해. Jira의 로그 작업에 사용자 정의 필드를 추가하기 위해 수행 한 작업을 설명합니다 ...

먼저 작업 로그 페이지를 설정하는 JSP 파일을 찾아야합니다. HTML로 사용자 정의 필드를 추가 할 수 있습니다. JavaScript로 작업 할 수 있습니다.

Jira는 WebWork라는 사용되지 않는 프레임 워크를 사용하므로 화면을 사용자 정의하는 가장 좋은 방법은 간단한 HTML을 사용하는 것입니다.

어쨌든, 이것은 템포 플러그인을 사용하고 싶지 않은 분을위한 옵션입니다.

0

ServiceRocket에서이 작업을 수행하기 위해 템포를 선택했으며 고객을 위해 추가 기능 (플러그인)을 사용하는 것이 좋습니다. 일반적으로 두 가지 정보 (작업 유형 및 작업 설명)에 대해 단일 필드 (작업 설명)를 사용하는 것은 장기간에 좋은 생각이 아닙니다.

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> 

는 그럼 골드 피처 의해 제공된 서브릿 필터 플러그인 모듈을 사용하고, 상기 필터는 패턴 /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 클래스에서 요청으로부터 새 매개 변수를 가져와 내 데이터베이스에 쓸 수있었습니다. (아니 락스 하나, 불행하게도, 나는 그 눈살을 찌푸리게되는 소리),

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() { 
} 

나는 봄과 잘 알고, 그래서 나는 내 플러그인의 META-INF/봄/디렉토리에 spring.xml 파일을 넣고 jar는 내 DataSource에 필요하고 데이터베이스 드라이버는 META-INF/lib 디렉토리에 있어야합니다. spring.xml에 구성된 JdbcTemplate은 OSGi 번들에 놓이게된다. (나는 생각한다.) 그런 다음 이것을 내 ServletFilter 구현의 생성자에 삽입한다.

관련 문제