1


いくつかの構成オプションを使用して、Jira用のガジェットを作成しています。これらの構成オプションの1つは、「プロジェクトまたはフィルターピッカー」です。
私の問題は、ガジェットの設定を再構成したい場合の部分にあります。例として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);

が必要です。2番目:残りのリソースでプロジェクトまたはフィルターの名前を取得します。これは、処理されたIDを既に使用しているため、問題にはなりません。次に、この名前をJavaScriptのビュー部分に戻し、次のように入力します。

this.projectOrFilterName = args.myrestclasskey.projectOrFilterName;

そして多田:再構成は古い構成された名前を表示します!

于 2011-08-17T07:06:17.937 に答える
0

ガジェットXMLファイルでオプションを指定するのを忘れたときに、この問題が発生しました。これをXMLに追加することで解決しました。

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