Пользовательский интерфейс расширения DevOps Azure - PullRequest
0 голосов
/ 10 ноября 2018

Мне было поручено разработать расширение для Azure DevOps для автоматизации процесса сборки - пользовательскую задачу сборки. Предостережение заключается в том, что в действительности то, что я разрабатываю, представляет собой серию задач сборки, каждая из которых содержит регулярные входные данные. Но по историческим причинам все эти задачи сборки должны быть сгруппированы, и пользователь сможет выбрать правильную из выпадающего списка на странице задач в настройках конвейера.

Проблема заключается в том, что изменение в раскрывающемся списке должно скрывать НЕКОТОРЫЕ входные данные, а также отображать некоторые другие входные данные - т.е. я хотел бы обработать событие ИЗМЕНЕНИЯ в раскрывающемся списке и контролировать видимость пользовательского интерфейса. элементы.

Это вообще возможно?

Я не на том пути? Как я могу подойти к этому?

1 Ответ

0 голосов
/ 12 ноября 2018

Решение простое, но пока не очевидно.

Для каждого входа есть свойство, называемое visibleRule, которое делает именно то, что нужно: контролирует видимость входа, к которому он присоединен. Таким образом, в файле task.json, в массиве inputs, можно сделать следующее:

Определите раскрывающийся список:

{
  "name": "selectedOption",
  "type": "pickList",
  "label": "Options",
  "options": {
    "o1": "Option 1",
    "o2": "Option 2",
    "o3": "Option 3"
  }
},

Затем определите некоторые поля следующим образом:

{
  "name": "test1",
  "type": "string",
  "label": "Option 1 test",
  "visibleRule": "selectedOption = o1"
},
{
  "name": "test2",
  "type": "string",
  "label": "Option 2 test",
  "visibleRule": "selectedOption = o2"
},

Теперь вход test1 отображается ТОЛЬКО, если в раскрывающемся списке selectedOption выбран o1 (Вариант 1). То же самое касается test2 и o2. * test1 и test2 не отображаются, если selectedOption равно o3.

...