Jira 允许在不同位置添加 web 片段。
我想编写一个插件来添加另一个批量操作,但既找不到位置(如果完全通过网络片段完成),也找不到Jira 插件模块类型中如何添加此类操作的提示。从现有的插件(例如出口商)我得到的印象是必须有办法。
任何帮助表示赞赏。谢谢。
Jira 允许在不同位置添加 web 片段。
我想编写一个插件来添加另一个批量操作,但既找不到位置(如果完全通过网络片段完成),也找不到Jira 插件模块类型中如何添加此类操作的提示。从现有的插件(例如出口商)我得到的印象是必须有办法。
任何帮助表示赞赏。谢谢。
有可能做到这一点,这是我所做的:
我扩展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
总结一下 - 你需要 3 个类(Operation
和Action
)EventListener
,webwork
在 atlassian-plugin.xml 中的Event Listener
定义和在 atlassian-plugin.xml 中的定义。然后你需要 JSP 文件。您可以将现有的用作示例。基本上我拿了WatchIssue
操作文件并类推。
我强烈建议看一下 JIRA 代码,看看他们是如何做到的。