在自定义字段插件开发中,我们创建一个自定义字段,如下所示(具有多个输入字段):
CutomFieldName:<Input Textbox> <Input Textbox> <Input Textbox> <sum of input 1,input 2 & input 2>
我正在按照教程Creating a Custom Field in JIRA创建插件。
下面,我更新了edit.vm
如下所示,以包含额外的两个文字输入,但它不起作用...只是出现了额外的文本框...(我不确定应该是什么其他更改要求)。< / p>
#customControlHeader ($action $customField.id $customField.name $fieldLayoutItem.required $displayParameters $auiparams)
<input class="text" id="$customField.id" name="$customField.id" type="text" value="$textutils.htmlEncode($!value)" /><input class="text" id="$customField.id" name="$customField.id" type="text" value="$textutils.htmlEncode($!value)" /><input class="text" id="$customField.id" name="$customField.id" type="text" value="$textutils.htmlEncode($!value)" />
#customControlFooter ($action $customField.id $fieldLayoutItem.fieldDescription $displayParameters $auiparams)
任何人都可以建议我如何更新此内容以在自定义字段中创建其他字段并保留不同的值并获得它们的总数。
答案 0 :(得分:2)
另一种方法是在客户端生成字段。您可以将代码添加到custom fields,以添加所需的表单字段。例如,要添加2个简单输入,请使用以下脚本:
<script type="text/javascript">
var table = AJS.$('<table>').append(
AJS.$('<tr>').append(
AJS.$('<td>',{text:'first'})
).append(
AJS.$('<td>',{class:'myinput'}).html(AJS.$('<input>'))
)
).append(
AJS.$('<tr>').append(
AJS.$('<td>',{text:'second'})
).append(
AJS.$('<td>',{class:'myinput'}).html(AJS.$('<input>'))
)
);
AJS.$("input#customfield_10001").before(table)
</script>
创建一个小函数来获取表单内容:
function collect_data() {
var content = AJS.$(".myinput input").map(function() {return this.value});
var json = '{"first":"'+content[0]+'","second":"'+content[1]+'"}';
AJS.$("input#customfield_10002").val(json);
}
最后,收集有关每项变更的最新信息:
AJS.$(".myinput").on('input',function(){
collect_data();
});
如果您决定使用此功能,请更新所有字段ID,根据需要修改输入字段,并添加更改表单创建代码,以便使用您选择的值填充输入。
如果您需要更多信息,请与我们联系。
答案 1 :(得分:2)
Practical JIRA Plugins的第3章有一个在JIRA自定义字段中存储多个值的工作示例。该示例的源代码可在https://bitbucket.org/mdoar/practical-jira-plugins
下载