Jelly Config Expand Elements
У меня есть быстрый вопрос. В jenkins при создании файла конфигурации jelly для графического интерфейса вы можете установить переключатель и показать больше элементов, можно ли это сделать с помощью выпадающего списка? Если да, у кого-нибудь есть пример, пожалуйста? Я знаю, как это сделать с помощью радиокнопок, но мне не нужны радиокнопки, мне нужно, чтобы контент зависел от выбора.
Изменить: В настоящее время у меня есть следующее:
<f:entry title="${%Authentication}" field="authMode">
<f:select />
</f:entry>
и в файле Java:
public ListBoxModel doFillAuthModeItems() {
ListBoxModel items = new ListBoxModel();
items.add("None");
items.add("Form Based Authentication");
items.add("Script Based Authentication");
return items;
}
Это создает выпадающий список из 3 элементов, мне просто нужно показать другой контент, например, на основе выбора. Ни один из них не будет иметь нового контента, на основе формы будет отображаться имя пользователя и текстовое поле пароля.
1 ответ
То, что вам нужно исследовать, это желейный тег гетеро-списка. На ней есть хорошая страница от облачных пчел, хотя их код закрыт
Я положил один с открытым исходным кодом для плагина оси селена, но это в отличной форме и использует отличные формы
namespace(lib.FormTagLib).with {
entry(title: _("Name"), field:"name") {
textbox( default:"label")
}
block{
entry(field:"seleniumCapabilities") {
hetero_list( name: "seleniumCapabilities",
hasHeader: true,
descriptors:descriptor.axisItemTypes(),
items: instance?
instance.getSeleniumCapabilities():
descriptor.loadDefaultItems())
}
}
}
Как это работает, так это то, что в дескрипторе верхнего уровня есть метод, который возвращает все дескрипторы, которые могут быть использованы
List<ItemDescriptor> axisItemTypes() {
def ait = Jenkins.instance.<Item,ItemDescriptor>getDescriptorList(Item)
def ret = []
for (int i = 0; i < ait.size(); i++) {
/*code removed*/
ret.add(ait.get(i))
}
ret
}
Все вложенные элементы должны иметь свои собственные дескрипторы, а также @DataBoundConstructor