Jira Gadget: конфигурация не сохраняется для повторной настройки


Я пишу гаджет для Jira с некоторыми параметрами конфигурации. Одним из таких параметров конфигурации является "выбор проекта или фильтра".
Моя проблема заключается в той части, когда я хочу перенастроить настройки гаджета. В качестве примера я прочитал код гаджета timesince, и я думаю, что соответствующая часть выглядит следующим образом:

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")

возвращает строку, содержащую идентификатор выбранного проекта или фильтра.

Теперь вопрос: как мне заставить мой гаджет запоминать последнюю конфигурацию, как это делается с некоторыми другими гаджетами Jira?

Я очень надеюсь, что кто-нибудь может помочь мне с этим.


person Alex    schedule 04.07.2011    source источник


Ответы (2)


Оказывается, ответ еще проще, чем я думал. Во-первых: в дескрипторе вы можете полностью забыть часть if, указанную выше. Только что

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

необходим. Во-вторых: получите имя проекта или фильтра в своем ресурсе отдыха, что не должно быть проблемой, поскольку вы уже хотите использовать обработанный идентификатор. Затем верните это имя обратно в часть просмотра вашего javascript и введите что-то вроде

this.projectOrFilterName = args.myrestclasskey.projectOrFilterName;

И тада: при перенастройке будет отображаться старое настроенное имя!

person Alex    schedule 17.08.2011

Однажды у меня возникла эта проблема, когда я забыл указать параметр в XML-файле гаджета. Я решил это, добавив это в XML:

    <UserPref name="projectOrFilterId" datatype="hidden"/>
person pjesi    schedule 20.07.2011
comment
Поскольку вызов getPref вернул правильное значение, я вряд ли мог забыть userPref. Но все равно спасибо! - person Alex; 17.08.2011