В коробке с FBI поставляется несколько готовых интрефейсных моделей.
Пользователю выводится форма, заполненная данными, он эти данные модифицирует и отправляет результат обратно системе.
За основу берётся html-шаблон, созданный пользователем. Заполнение данных происходит согласно следующим правилам:
Происходит запрос woo-read к бакенду, после чего:
Однострочное текстовое поле заполнится значением, соответствующим параметру “name1”
Скрытое поле заполнится значением, соответствующим параметру “name2”.
Многострочное текстовое поле заполнится значением, соотвествующим параметру “name3”
Параметр name3 должен быть булевым значением (то есть #t или #f). Состояние checked выставляется согласно значению параметра “name4”, в качестве value записывается "#t”. Потом при посылке запроса на изменение строка "#t” будет автоматически преобразована в #t. Обратите внимание, что «неотмеченный» checkbox не будет фигурировать в списке параметров, передаваемых по запросу POST, поэтому не забудьте добавить в constraints соответствующее значение по-умолчанию (если конечно требуется различать истинные и ложные значения).
Будет произведён дополнительный запрос woo-list по адресу <урл>/args4. Полученные значения будут превращены в OPTIONS, а выбран будет компонент соответствующий значению параметра name5.
Иногда могут потребоваться read-only поля, которые из соображений украшательства нет смысла выводить как read-only input. Контейнер будет заполнен значением параметра name6.
Ещё одно вспомогательное украшательство. Будет создана ссылка на текущий объект, значение параметра href будет добавлено к текущему url, таким образом можно например передавать дополнительные параметры
Автоматический заполнитель таблиц серией значений подъобъектов данного объекта. Внутри тега TBODY должен присутствовать шаблон строки, состоящий из различных комбинаций тегов, перечисленных выше. Будет произведён запрос woo-list по адресу <урл>/args, а потом для каждого объекта создана строка, на основании заданного шаблона по правилам, описанным выше. Для каждого тега поле name будет модифицированно следующим образом: “name” превратится в "<урл-подобъекта>:name”. В результате запроса post для каждой строки будет автоматически сгенерирован запрос woo-write. Таким образом можно делать не только информационные сводки, но и организовывать одновременное управление множеством однотипных объектов.
После проведения подстановок будут сохранены все атрибуты полей, связанные с форматированием, атрибуты value писать не стоит. Теги input типов submit и reset никаким специальным образом не обрабатываются. После выполнения запроса POST будет произведен запрос woo-write (или множество запросов woo-write в случае использования редактируемой таблицы). В случае ошибки во время выполнения запроса, будет выведена соответствующая информация. Если запрос завершится успешно, то пользователю в ответ придёт форма c обновлённым состоянием полей.
Данный frontend управляетcя двумя параметрами: