1


我正在为 Jira 编写一个带有一些配置选项的小工具。这些配置选项之一是“项目或过滤器选择器”。
我的问题在于,当我想重新配置小工具的首选项时。我以timesince-gadget的代码为例,我认为相关部分如下:

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);
}

基本上我已经从timesince-gadget 中复制了代码。不幸的是,即使已经配置,javascript 也总是进入 else 部分。
一个问题是,我没有使用 jql 的经验,也不完全理解 if 子句。

但通常(例如在调用其余 api 并处理配置信息时)

gadget.getPref("projectOrFilterId")

返回一个包含所选项目或过滤器的 id 的字符串。

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

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

4

2 回答 2

1

事实证明,答案比我想象的还要简单。首先:在描述符中,您完全可以忘记上面的 if 部分。只是

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

是需要的。第二:在您的剩余资源中检索项目或过滤器的名称,这应该不是问题,因为您已经想使用已处理的 id。然后将此名称返回到您的 javascript 的视图部分并输入类似的内容

this.projectOrFilterName = args.myrestclasskey.projectOrFilterName;

并且 tada: reconfiguration 将显示旧的配置名称!

于 2011-08-17T07:06:17.937 回答
0

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

    <UserPref name="projectOrFilterId" datatype="hidden"/>
于 2011-07-20T18:11:37.273 回答