Jira允许在different locations上添加网络片段。
我想编写一个插件,添加另一个批量操作,但既不能找到位置(如果这完全是通过网络广告完成的),也不是Jira Plugin Module Types中的提示如何添加这样的操作。从现有的插件(例如出口商),我得到的印象是必须有办法。
任何帮助表示赞赏。感谢。
答案 0 :(得分:0)
可以这样做,这就是我所做的:
我扩展了AbstractBulkOperation
类,并使用EventListener
方法在afterPropertiesSet
中添加此操作,如下所示:
ComponentAccessor.getBulkOperationManager().addBulkOperation(MyOperationClass.NAME_KEY, MyOperationClass.class);
您需要实施canPerform
,perform
(实际操作),getOperationName
,getCannotPerformMessageKey
,getNameKey
,getDescriptionKey
我扩展了AbstractBulkOperationDetailsAction
,但BulkEditBeanSessionHelper
无法自动装配,所以我介绍了受保护的构造函数并将其解决了:
protected MyActionClass()
{
super(null, ComponentManager.getComponentInstanceOfType(BulkEditBeanSessionHelper.class));
genericBulkWatchOperation = ComponentAccessor.getBulkOperationManager().getOperation(NAME_KEY);
}
您需要在此课程中实施getOperationDetailsActionName
,doDetails
,doDetailsValidation
,doPerform
方法。
我在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
要将其打包 - 您需要atlassian-plugin.xml和Operation
中的3个类(Action
,EventListener
和webwork
),Event Listener
定义定义也在atlassian-plugin.xml中。然后你需要JSP文件。您可以使用现有的并以它们为例。
基本上我采用了WatchIssue
个操作文件并以类比方式进行了操作。
我强烈建议您查看JIRA代码以了解他们是如何做到的。