如何在我自己的自定义字段中使用JIRA AUI函数 - velocity edit.vm

时间:2014-07-09 10:49:53

标签: javascript jquery velocity custom-fields jira-plugin

我正在尝试在我的JIRA中使用一些AUI - 在我自己的自定义字段的编辑模式下用JAVA编写。 我找到了这个页面:https://docs.atlassian.com/aui/latest/sandbox/#并且将来我想使用设置示例Auiselect2。

https://docs.atlassian.com/aui/5.5.1/docs/auiselect2.html - 这里写的是,这只是实验性的,我应该采取哪些步骤来使用它?在下面的例子中你可以看到,我试图添加这个功能,但它很简单没有用。我正在使用文档中提到的示例 -

edit.vm:

$webResourceManager.requireResource("cz.firma.rozy:zakaznik")

<form class="aui">
    <select id="select2-example" multiple>
        <option value="CONF">Confluence</option>
        <option value="JIRA">JIRA</option>
        <option value="BAM">Bamboo</option>
        <option value="JAG">JIRA Agile</option>
        <option value="CAP">JIRA Capture</option>
        <option value="AUI">AUI</option>
    </select>
</form>

和zakaznik.js

AJS.$(function() {
    AJS.$("#select2-example").auiSelect2();
});

我的atlassian-plugin.xml是:

<web-resource key="zakaznik-resources" name="zakaznik Web Resources">
    <dependency>com.atlassian.auiplugin:ajs</dependency>
    <dependency>com.atlassian.auiplugin:jquery</dependency>
    <dependency>com.atlassian.auiplugin:jquery-ui-other</dependency>
    <dependency>com.atlassian.auiplugin:aui-select2</dependency>
    <context>atl.general</context>
    <context>atl.admin</context>
    <resource type="download" name="zakaznik.css" location="/css/zakaznik.css"/>
    <resource type="download" name="zakaznik.js" location="/js/zakaznik.js"/>
    <resource type="download" name="images/" location="/images"/>
    <context>zakaznik</context>
  </web-resource>

...
  <customfield-type name="Pridani zakaznika" i18n-name-key="customer-add.name" key="customer-add" class="cz.firma.rozy.jira.customfields.CustomerCustomField">
    <description key="customer-add.description">Plugin, ktery prida zakaznika z abry</description>
    <resource name="view" type="velocity" location="templates/viewCustomer.vm"/>
    <resource name="edit" type="velocity" location="templates/edit.vm"/>
  </customfield-type>

但是当我访问编辑模式时,没有完成jQuery - 浏览器控制台不会写任何错误或警告。

3 个答案:

答案 0 :(得分:1)

只需将此行添加到edit.vm,就会包含select2 js。

$webResourceManager.requireResource("com.atlassian.auiplugin:aui-select2")

您无需在Web资源中将其添加为依赖项。

在你的js文件中,只需通过 -

调用select2
AJS.$("#select2-example").select2();

答案 1 :(得分:0)

您只需在edit.vm

中添加以下内容即可
$webResourceManager.requireResourcesForContext("zakaznik")

我不同意所提供的其他答案。当我们已经在资源文件中添加js时,为什么要在edit.vm文件中再次执行此操作。只需参考我们已经使用它创建的网络资源。

答案 2 :(得分:0)

您需要通过webResourceManager加载aui资源。 atlassian-plugin.xml不需要更改。 您的customfields .vm文件可能如下所示:

#controlHeader ($action $customField.id $customField.name $fieldLayoutItem.required $displayParameters.noHeader)
$webResourceManager.requireResource("com.atlassian.auiplugin:aui-select2")

<script type="text/javascript">
    AJS.toInit(function() {
        AJS.$("#$customField.id").select2();
    });
</script>

<select name="$customField.id" id="$customField.id" multiple>

    #foreach ($option in $options)
        <option value="$option">$option</option>
    #end
</select>

#controlFooter ($action $fieldLayoutItem.fieldDescription $displayParameters.noHeader)