2011-07-04 47 views
1


我正在为Jira写一个小配件,并提供一些配置选项。其中一个配置选项是“项目或过滤器选择器”。
我的问题出在部分,当我想重新配置小工具的偏好。我已阅读timesince小组件作为例子的代码,我认为相关的部分如下:Jira小工具:配置不会保存用于重新配置

if (/^jql-/.test(gadget.getPref("projectOrFilterId"))){ 
    projectAndFilterPicker = 
    { 
     userpref: "projectOrFilterId", 
     type: "hidden", 
     value: gadgets.util.unescapeString(this.getPref("projectOrFilterId")) 
    }; 
} else { 
    projectAndFilterPicker = AJS.gadget.fields.projectOrFilterPicker(gadget, "projectOrFilterId", args.options); 
} 

Basicly我已经复制从timesince,小工具的代码。不幸的是,即使已经配置好了,JavaScript总是进入else部分。
问题是,我没有使用jql的经验,不完全理解if子句。

但通常(例如主叫当REST API和处理的相关信息的配置)

gadget.getPref("projectOrFilterId") 

返回包含拾取项目或过滤器的ID的字符串。

现在的问题是:如何让我的小工具记住最近的配置,就像使用其他许多其他Jira小工具一样?

我真的希望任何人都可以帮助我。

回答

1

它解决了,答案甚至更简单,然后我想。 首先:在描述符中,你完全可以忘记上面的if部分。只需要

var projectAndFilterPicker = AJS.gadget.fields.projectOrFilterPicker(gadget, "projectOrFilterId", args.options); 

是必要的。 第二:在休息资源中检索项目或过滤器的名称,这应该不成问题,因为您已经想要使用已处理的ID。然后将此名称返回到javascript的视图部分,然后键入类似于

this.projectOrFilterName = args.myrestclasskey.projectOrFilterName; 

而tada:重新配置将显示旧配置的名称!

0

当我忘记指定小工具XML文件中的选项时,我曾遇到过这个问题。我通过将它添加到XML来解决它:

<UserPref name="projectOrFilterId" datatype="hidden"/> 
+0

由于getPref调用返回正确的值,我几乎不会忘记userPref。不过谢谢! – Alex