我正在JIRA实施一个服务台,我有两个下拉菜单 - 类别和子类别单一值选择强>
例如, 我关注类别:
每个类别都有一个子类别列表。例如,设计将包含以下选项列表
默认情况下,类别下拉列表应显示在 CREATE ISSUE 屏幕上。 当用户选择类别之一时,相应的子类别下拉列表应显示在CREATE ISSUE屏幕 AND 该子类别下拉列表中应该是MANDATORY字段。
我在以下链接中查找了可能的解决方案:
前两个链接基本上建议使用相同的解决方案 - 即将JAVASCRIPT放在自定义字段的描述字段中,并在此问题上的许多其他博客上提出相同的建议。他们都给出了同样的例子。
然而,这对我不起作用。当我在自定义字段的描述中放置任何JAVASCRIPT时,它会在保存后立即运行 - 在字段配置屏幕上。例如,我只是在描述中添加了一个JAVASCRIPT,然后立即收到警报(在字段配置屏幕上)。
<script type="text/javascript">
alert('hi');
</script>
但是,我没有在CREATE ISSUE屏幕上收到任何警报。所以,不确定我是否遗漏了任何东西。请告知我是否正朝着正确的方向前进。
第3个链接,建议从JIRA机器创建一个插件。但是,我无法访问该计算机,我只有管理员访问JIRA。
有没有可行的方法通过默认的JIRA配置/外部插件来实现它?
我的JIRA版本是:6.1.4
答案 0 :(得分:0)
我在JIRA 6.0.8,JIRA 6.2.4和JIRA 6.4.8的自定义字段中也使用过Java脚本,所以我认为它绝对适用于JIRA 6.1.4。
您只需将java脚本放在子类别自定义字段中,如下所示:
例如Design - &gt; 将customfield_ID1替换为Category Custom字段的自定义ID,将customfield_ID2替换为Sub Category Design Custom字段的自定义ID
<script type="text/javascript">
jQuery(document).ready(function($) {
JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function (e, context) {
callChangeFunction();
});
callChangeFunction();
function callChangeFunction(){
showHidField();
// dropdown custom field change function
$("#customfield_ID1").change(function() {
showHidField();
});
}
function showHidField(){
//drop down field selected value
var dropDownFieldval =$.trim($("#customfield_ID1 :selected").text());
//test field1
$("#customfield_ID2").closest('div.field-group').hide();
if(dropDownFieldval == 'Design'){
$("#customfield_ID2").closest('div.field-group').show();
}else
$("#customfield_ID2").closest('div.field-group').hide();
}
});
</script>
上面将显示或隐藏字段,请确保类别和子类别自定义字段都在同一屏幕上(例如:创建屏幕)
现在为了使它们成为必需项,您需要在项目工作流中创建转换时将该代码编写为验证器,如下所示:
import com.atlassian.jira.issue.customfields.option.LazyLoadedOption;
LazyLoadedOption selOption = issue.getCustomFieldValue (customFieldManager.getCustomFieldObject('customfield_ID1'));
(selOption.getValue()=='Design' && cfValues[Name of design Sub Category field#'])|| selOption.getValue()=='Events';
确保安装了Behavior Plugin以获取简单的脚本验证器
希望这有帮助!
Priyanka Lavania