由於某些緣由,項目中的某些模塊不容許提問題單,可是又須要自動化指定(經過rest api等)。html
實現方式:修改模版文件,atlassian/jira/atlassian-jira/WEB-INF/classes/templates/jira/issue/field/components-edit.vmapi
該文件用於create/edit 問題單時加載模塊信息。ide
1 #disable_html_escaping() 2 $!{auiparams.put("controlHeaderClass", "aui-field-componentspicker $!fieldLayoutItem.rendererType")} 3 #customControlHeader ($action $field.id $i18n.getText($field.nameKey) $fieldLayoutItem.required $displayParameters $auiparams) 4 #if ($components && !$components.empty) 5 #if ($!isFrotherControl)<div class="ajs-multi-select-placeholder textarea long-field"></div>#end 6 #if (!$fieldLayoutItem.required) 7 #set ( $componentHeaderSize = 1) 8 #end 9 <select class="select #if ($!isFrotherControl)hidden#end" id="$field.id" multiple="multiple" name="$field.id" 10 size="#minSelectSize($components $componentHeaderSize 5)" 11 data-remove-null-options="true" data-submit-input-val="true" data-input-text="#if (!$bulkEdit)$textutils.htmlEncode($!frotherInputText)#end" data-create-permission="$!{createPermission}"> 12 #if (!$fieldLayoutItem.required) 13 <option#if ($currentComponents && $unknownComponentId && $currentComponents.contains($unknownComponentId)) selected="selected"#end value="-1"> 14 $i18n.getText('common.words.unknown') 15 </option> 16 #end 17 #foreach ($component in $components) 18 #if ($component.name.indexOf("(Hide)")==-1) 19 <option#if ($currentComponents && $component && $currentComponents.contains($component.id)) selected="selected"#end title="$textutils.htmlEncode($component.name) #if($component.description) - $textutils.htmlEncode($component.description)#end" value="$!component.id"> 20 $textutils.htmlEncode($component.name) 21 </option> 22 #end 23 #end 24 </select> 25 #if ($!isFrotherControl)<div class="description">${i18n.getText('generic.picker.static.desc')}</div>#end 26 #else 27 <span class="field-value">$i18n.getText('common.words.none')</span> 28 #end 29 #customControlFooter ($action $field.id $fieldLayoutItem.getFieldDescription() $displayParameters $auiparams) 30 $!{auiparams.clear()}
17-23行代碼塊即在初始化模塊相關信息界面,包括勾選已選模塊,加載可選模塊等。其中,加粗顯示的18和22行即根據需求添加的過濾條件:若是模塊名中包含「(Hide)」字段,則不顯示。ui
修改完成後,重啓JIRA便可生效。spa
經如上修改後,經過REST API等方式能夠指定已經隱藏的模塊,但在界面上操做時模塊不可見,從而實現需求。rest
ccode
omponents-edit.vmcomponent