Jira サーバー 7.2.1。カスタム フィールド プラグイン。
この議論に続く質問 理解できません。メソッド getSingularObjectFromString は何をしますか? 「実用的なjiraプラグイン」からの情報
基本的な value-displayValue ロジックを使用してデータベース カスタム フィールドを実装しようとしています。フィールドは外部エンティティを表すため、フィールドの値として ID を格納していますが、NAME を表示しています。編集と表示の 2 つの .vm テンプレートがあります。ID を NAME に変換する適切な場所を選択しようとしています。getStringFromSingularObject(Object o)
ID から NAME を取得するメソッドをオーバーライドしました。edit.vm では問題なく動作します。変数として$value
正確な名前を取得しますが、view.vm では id を$value
. メソッドのメソッド呼び出しをログに記録しAbstractSingleFieldType
たところ、
フィールドを含むページがレンダリングされるとき: メソッド
getValueFromIssue, getDatabaseType, getObjectFromDbValue
はそれぞれ 4 回呼び出されます (この順序で 4 サイクル)。したがって、それらは間違いなくクエリの場所ではありません。フィールドが編集モードでレンダリングされるとき (つまり、edit.vm が処理されます) (つまり、画面の作成または画面の編集: 同じメソッドが 4 回呼び出されて
getStringFromSingularObject
から呼び出され、必要なgetStringValueFromCustomFieldParams
名前が返されます。ビューの問題画面を単に更新すると、メソッド
getStringFromSingularObject
がまったく呼び出されません-問題の原因です。現在、課題の表示画面に名前ではなく ID が表示されていますが、鉛筆 (編集) をクリックすると正しい値 (名前) が表示されます。さらに、その場合、どのメソッドも呼び出されません。では、Jira は両方のテンプレートを事前に処理していると思いますか?
edit.vm
<div class="field-group">
<label for="cFieldId">
$customField.name $value
#if($fieldLayoutItem.required)
<span class="aui-icon icon-required">Required</span>
#end
</label>
<select class="select cf-select" name="$customField.id" id="$customField.id">
<option value="">None</option>
#foreach ($id in $items.keySet())
#if ($value && $value.equals($items.get($id)))
<option value="$id" selected="selected">$items.get($id)</option>
#else
<option value="$id">$items.get($id)</option>
#end
#end
</select>
</div>
ビュー.vm
<div id="$customField.id-val" class="value type-select" data-fieldtype="select" data-fieldtypecompletekey="com.atlassian.jira.plugin.system.customfieldtypes:select">
$value
</div>
ここでも、edit.vm は正常に動作し、name を値として、names をオプションとして表示します。view.vm が正しく動作せず、id が表示されます。したがって、質問は次のとおりです。
- 値の表示を担当するメソッドがビューで呼び出されないのはなぜですか?
$value
view.vm に対して実際に設定されている場所- 私の目的のために他にどのようなオプションがありますか