0

Jira では、さまざまな場所に Web フラグメントを追加できます。

別の一括操作を追加するプラグインを書きたいのですが、その場所 (これが Web フラグメント経由で行われた場合) も見つからず、Jira プラグイン モジュール タイプでそのような操作を追加する方法のヒントも見つかりません。既存のプラグイン (exporter など) から、何か方法があるに違いないという印象を受けました。

どんな助けでも感謝します。ありがとう。

4

1 に答える 1

0

それを行うことは可能です、ここに私がやったことです:

クラスを拡張AbstractBulkOperationし、アプローチを使用して、この操作を次のようEventListenerに追加しました。afterPropertiesSet

ComponentAccessor.getBulkOperationManager().addBulkOperation(MyOperationClass.NAME_KEY, MyOperationClass.class);

canPerformperform(実際の操作)、、、、getOperationNamegetCannotPerformMessageKey実装する必要がありますgetNameKeygetDescriptionKey

を拡張しましAbstractBulkOperationDetailsActionたが、BulkEditBeanSessionHelper自動配線できなかったので、保護されたコンストラクターを導入してそこに取得しました:

protected MyActionClass()
{
super(null, ComponentManager.getComponentInstanceOfType(BulkEditBeanSessionHelper.class));

genericBulkWatchOperation = ComponentAccessor.getBulkOperationManager().getOperation(NAME_KEY);
}

このクラスには、、、、メソッドgetOperationDetailsActionNameを実装doDetailsする必要があります。doDetailsValidationdoPerform

Webworkに要素を作成しましたatlassian-plugin.xml。次のようなものです。

<webwork1 key="key" name="name" class="java.lang.Object">
<actions>
<action name="path to action class" alias="Action">
<command name="details" alias="ActionDetails">
<view name="success">/secure/views/bulkedit/bulkchooseoperation.jsp</view>
<view name="input">/secure/views/bulkedit/bulkActiondetails.jsp</view>
<view name="error">/secure/views/bulkedit/bulkchooseoperation.jsp</view>
</command>
<command name="detailsValidation" alias="ActionDetailsValidation">
<view name="input">/secure/views/bulkedit/bulkActionconfirmation.jsp</view>
<view name="error">/secure/views/bulkedit/bulkActionconfirmation.jsp</view>
</command>
<command name="perform" alias="ActionPerform">
<view name="error">/secure/views/bulkedit/bulkActionerror.jsp</view>
</command>
</action>
</actions>
</webwork1>

JSP ファイルはプラグインに埋め込むことができません。/secure/views/bulkedit

まとめると、 3 つのクラス ( OperationActionおよびEventListener)、 atlassian-plugin.xml での定義webwork、および atlassian-plugin.xml での定義が必要Event Listenerです。次に、JSP ファイルが必要です。既存のものを例として使用できます。基本的に私はWatchIssue操作ファイルを取り、類推的に行いました。

JIRA コードを見て、彼らがどのようにそれを行っているかを確認することを強くお勧めします。

于 2015-08-31T13:14:10.243 に答える