2011-07-04 68 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