自定义Jira描述模板的文件是description-edit.vm,位置如下:
atlassian/jira/atlassian-jira/WEB-INF/classes/templates/jira/issue/field/description-edit.vm
根据问题类型切换描述信息的模板,思路是先定义好多个模板,在新建问题时判断问题类型切换不同模板。
主要注意三个地方:
1、判断问题类型
有两种方式:
(1)根据问题类型名称,比如:
$issue.getIssueTypeObject().getName() == '故障'
(2)根据问题类型ID,比如:
$issue.getIssueType().getId() == 10004
2、设置不同的描述模板
提前set多个不同名称的模板,比如:
#set( $DESCR_BUG_TYPES = 'XXX' )
#set( $DESCR_TASK_TYPES = 'XXX' )
3、判断新问题
只对新建的问题预设模板,可以这样判断:
#if (!$issue.key)
上面三个问题解决,就可以实现根据问题类型切换模板。
附上description-edit.vm完整代码,如下:
#disable_html_escaping()
#customControlHeader ($action $field.id $i18n.getText($field.nameKey) $fieldLayoutItem.required $displayParameters $auiparams)
## setup some additional parameters
$!rendererParams.put("class", "long-field")
$!rendererParams.put("rows", "12")
$!rendererParams.put("wrap", "virtual")
#set( $DESCR_BUG_TYPES = '
=========================================问题描述===============================
注意:复现步骤最好有图。
【问题发现人】XXXX
【问题发现环境】XXX正式环境
【是否必现】是/偶现
【复现步骤】
1、XXXXX截图(如果有)
2、XXXXX截图(如果有)
3、XXXXX截图(如果有)
========================================开发定位及修改自测======================
注意:问题原因尽量把代码或者方案截图贴上,自测需要写自测步骤和自测结果,如果有图,需要贴图。
【开发人】
【问题原因】(需要代码截图或者方案截图)
【修改方案】(需要代码截图或者方案截图)
【修改方案审核人】
【审核意见】
【开发自测环境】
【开发自测步骤】
【开发自测结果】(有图有真相)
=========================================测试回归==============================
注意:回归时,测试步骤需要清楚,尽量贴图。
【回归人】XXX
【一轮测试】
【测试步骤】(有图有真相)
【测试结论】(测试通过)
【二轮测试】
【测试步骤】(有图有真相)
【测试结论】(测试通过)
')
#set( $DESCR_TASK_TYPES = '
========================================需求描述================================
【提出人】
【需求描述】
1. xxxxxx
2. xxxxxx
3. xxxxxx
========================================开发自测================================
注意:要附上自测用例的表格。
【开发人】
【自测环境】
【自测步骤】
【自测结果】测试通过(有图有真相)
')
## set description field if issue does not yet exist
#if (!$issue.key)
## set description for bug types. OR 根据问题类型ID或者名称:$issue.getIssueType().getId() == 10004 || $issue.getIssueType().getId() == 10100
#if (
$issue.getIssueTypeObject().getName() == '故障'
|| $issue.getIssueTypeObject().getName() == '偶现或疑难问题'
)
#set ($description = $DESCR_BUG_TYPES)
## clear description field for all other types
#else
#set ($description = $DESCR_TASK_TYPES)
#end
#end
#if ($mentionable)
$!rendererParams.put("mentionable", true)
#if ($issue.project.key && $issue.project.key != "")
$!rendererParams.put("data-projectkey", "$!issue.project.key")
#end
#if ($issue.key && $issue.key != "")
$!rendererParams.put("data-issuekey", "$!issue.key")
#end
#end
## let the renderer display the edit component
$rendererDescriptor.getEditVM($!description, $!issue.key, $!fieldLayoutItem.rendererType, $!field.id, $field.name, $rendererParams, false)
#customControlFooter ($action $field.id $fieldLayoutItem.getFieldDescription() $displayParameters $auiparams)