Jira Gadget: конфигурация не сохраняется для перенастройки - PullRequest
1 голос
/ 04 июля 2011


Я пишу гаджет для 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);
}

В основном я скопировал код из временного гаджета. К сожалению, даже если он уже настроен, JavaScript всегда входит в другую часть.
Проблема в том, что у меня нет опыта работы с jql и я не совсем понимаю условие if.

Но обычно (например, при вызове остальных API и обработке информации о конфигурации)

gadget.getPref("projectOrFilterId")

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

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

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

Ответы [ 2 ]

1 голос
/ 17 августа 2011

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

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

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

this.projectOrFilterName = args.myrestclasskey.projectOrFilterName;

И tada :confconfiguration отобразит старое настроенное имя!

0 голосов
/ 20 июля 2011

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

    <UserPref name="projectOrFilterId" datatype="hidden"/>
...