【问题标题】:Jira custom fields - how to use jquery in velocity edit.vmJira 自定义字段 - 如何在速度 edit.vm 中使用 jquery
【发布时间】:2014-08-30 05:57:51
【问题描述】:

我正在尝试编写一些相对简单的自定义字段。

这是我的edit.vm的摘录:

$webResourceManager.requireResource("cz.firma.rozy:zakaznik")
<input id="test" style="width:500px"
       type="text" placeholder="Sem zadejte ID" value=""/>
<button id="buttonID" >Use ID</button>

这是我的简单 zakaznik.js:

AJS.$( "#buttonID" ).click(function() {
    AJS.$("#test").hide();
});

最后是 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>

插件已成功构建并安装在 JIRA (v6.2.3) 中,我可以将此字段添加到任何屏幕。当我点击这个添加的按钮时,我想看看,那个输入是隐藏的。当我点击我的按钮时,什么都没有做,编辑模式也关闭了。

我做错了什么?

【问题讨论】:

  • 请将您的问题拆分为单独的问题。
  • 好吧,我被拆分了

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


【解决方案1】:

尝试在 Velocity 模板中更改 requireResource 指令中的路径:

例如,如果你的 pom.xml 包含这些字符串:

<groupId>com.bla-bla.groupId-bla</groupId>
<artifactId>my-plugin-bla-bla</artifactId>

并且带有 js 文件的网络资源具有 key="zakaznik-resources" (根据您的示例)

那么你必须使用这个指令:

$webResourceManager.requireResource("com.bla-bla.groupId-bla.my-plugin-bla-bla:zakaznik-resources")

要自我控制,您可以使用 Firebug 或其他浏览器插件/工具来检查您的 js 文件在此页面上的可用性。

【讨论】:

  • 从 pom.xml 中提取:&lt;groupId&gt;cz.firma.rozy&lt;/groupId&gt; &lt;artifactId&gt;zakaznik&lt;/artifactId&gt; 所以我的 requireResource 是:$webResourceManager.requireResource("cz.firma.rozy.zakaznik:zakaznik-resources") 可以吗?当我在 web-resource 的 atlassian-plugin.xml 中使用 时,我不确定是否需要这个 require 语句?但结果还是一样。单击按钮后,我的编辑模式已关闭。 Firebug 很安静,没有错误或警告
  • 用你的工具检查 - 你的 js 文件是否可以从这个页面获得?如果是 - 在您的方法中放置断点并检查它的行为
  • 我检查了我的代码并提出了另一个建议:在输入标签中使用 onclick 属性:。并将您的隐藏逻辑移动到适当的方法 someMethod() { AJS.$("#test").hide(); } 在 js 文件中
  • 好的,差不多完成了,非常感谢:-) 现在,当我点击我的按钮时,输入被隐藏,几乎立即关闭编辑模式。 (没有我的其他互动)
  • 好的,当我为 JIRA 开发插件时,我从这本书中得到了很大的帮助:Jobin Kuruvilla 的“JIRA 5.x Development Cookbook”
猜你喜欢
  • 2014-08-30
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多