Вместе с FBI поставляется ряд наиболее часто используемых workflow. Все workflow принимают дополнительные параметры, которые перечисляются в параметре wf после названия так как это принято для URL, например wf="form?param1=1¶m2=2". Следующие параметры – общие для всех workflow:
Параметры:
При чтении (GET) форма заполняется данными, прочитанными у бакенда. При сохранении формы (POST) – модифицированные данные сохраняются обратно.
Параметры:
Двойная форма, применяется для управлением серией однотипных объектов. В html-шаблоне присутствуют две формы. Одна управляет основным объектом (class="selector-chooser"), а также в ней размещается селектор подъобекта (select c name="name"). Во второй форме (class="selector-data") выводятся параметры очередного выбранного объекта. Возможно также удаление объекта и создание нового. Данный workflow может также применяться для моделирования «двух-уровневого» выбора.
Форма основного объекта. Подстановка параметров происходит так же как и во frontend form. Важное исключение, <SELECT name="name"> обрабатывается особым образом. Делается запрос woo-list по адресу <урл> и заполняется именами подобъектов, по-умолчанию выделяется первый объект в списке, для него же заполняется вторая форма. Внутри именно этой формы должны размещаться кнопки для : выбора, создания и удаления подобъекта, а также сохранения параметров основного объекта. Значение name у этого SELECT должно быть именно “name”, иначе список в форме будет пустым.
Форма подобъекта. Подстановка параметров происходит так же как и во frontend form. Важная особенность. Обязательно должен присутствовать <DIV class="selector-name"> или пустой или содержащий поле с именем name. Это поле будет использоваться при создании нового экземпляра объекта. Внутри именно этой формы должна размещаться кнопка для изменения состояния подобъекта. Также этот DIV используется для размещения служебных скрытых полей для определения вида производимой над подъобъектом операции.
Данный frontend различает нажатия разных submit. Возможны следующие варианты (указываются в атрибуте name тега INPUT):
Форму card-index стоит применять, если нужно выбирать объекты только на одном уровне с последующим заполнением их свойств. Изначально card-index создавался, когда возможности простых форм были слишком бедными. Сейчас лучше не пользоваться card-index, т.к. у него есть ограничения по функциональности. Например, при создании нового объекта к бакенду не выполняется запрос woo-read. Из-за этого нельзя заполнять свойства объекта по умолчанию.
Вместо card-index можно использовать комбинацию обычных форм. Пример такой комбинации есть в пакете alterator-nut. Там используется список объектов (nut-device-list.html), из которого можно перейти к настройке выбранного объекта (nut-device-object.html). Также там есть промежуточная форма (nut-drivers.html), в которой используется card-index для выбора драйвера. Эта промежуточная форма не обязательна при создании новых модулей, просто используется для удобства выбора драйвера. Правила переходов между формами описаны в файле template-nut-devices.
Данный frontend поддерживает точно такие же параметры как и frontend form.
FBI автоматически подключает эффекты для constraints. Есть также несколько дополнительных украшений.
Поле ввода пароля с возможностью автоматической генерации оного. Для работы требуется бакенд pwgen. Чтобы задействовать этот эффект необходимо включить скрипт /fbi/password.js и отметить div с двумя полями типа password (атрибуты name должны быть равны соответственно passwd1 и passwd2) параметром id со значением “ajax-password”. Note: В будущем, если потребуется, будет возможно использовать несколько полей такого типа в одной форме.