Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/Alterator/stdtemplates ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Sisyphus/Alterator/stdtemplates за 2006-12-15 15:02:14..

Оглавление документа

Стандартные интерфейсные шаблоны

В коробке с FBI поставляется несколько готовых интрефейсных моделей. При использовании любого типа модели бакенд обязательно должен уметь отвечать на вопрос constraints, даже если этот ответ пустой.

Форма ( form )

Пользователю выводится форма, заполненная данными, он эти данные модифицирует и отправляет результат обратно системе.
За основу берётся html-шаблон, созданный пользователем. Заполнение данных происходит согласно следующим правилам:


Происходит запрос woo-read к бакенду, после чего:

<INPUT type="text" name="name1">

Однострочное текстовое поле заполнится значением, соответствующим параметру “name1”

<INPUT type="hidden" name="name2">

Скрытое поле заполнится значением, соответствующим параметру “name2”.

<TEXTAREA name="name3">

Многострочное текстовое поле заполнится значением, соотвествующим параметру “name3”

<INPUT type="checkbox" name="name4">

Параметр name3 должен быть булевым значением (то есть #t или #f). Состояние checked выставляется согласно значению параметра “name4”, в качестве value записывается "#t”. Потом при посылке запроса на изменение строка "#t” будет автоматически преобразована в #t. Обратите внимание, что «неотмеченный» checkbox не будет фигурировать в списке параметров, передаваемых по запросу POST, поэтому не забудьте добавить в constraints соответствующее значение по-умолчанию (если конечно требуется различать истинные и ложные значения).

<SELECT name="name5" optlist="args4">

Будет произведён дополнительный запрос woo-list по адресу <урл>/args4. Полученные значения будут превращены в OPTIONS, а выбран будет компонент соответствующий значению параметра name5.

<SPAN class="alterator-label" name="name6">

Иногда могут потребоваться read-only поля, которые из соображений украшательства нет смысла выводить как read-only input. Контейнер будет заполнен значением параметра name6.

<A class="alterator-ref" href="sub-options">

Ещё одно вспомогательное украшательство. Будет создана ссылка на текущий объект, значение параметра href будет добавлено к текущему url, таким образом можно например передавать дополнительные параметры

<TBODY class="alterator-list" optionlist="args">

Автоматический заполнитель таблиц серией значений подъобъектов данного объекта. Внутри тега TBODY должен присутствовать шаблон строки, состоящий из различных комбинаций тегов, перечисленных выше. Будет произведён запрос woo-list по адресу <урл>/args, а потом для каждого объекта создана строка, на основании заданного шаблона по правилам, описанным выше. Для каждого тега поле name будет модифицированно следующим образом: “name” превратится в "<урл-подобъекта>:name”. В результате запроса post для каждой строки будет автоматически сгенерирован запрос woo-write. Таким образом можно делать не только информационные сводки, но и организовывать одновременное управление множеством однотипных объектов.


После проведения подстановок будут сохранены все атрибуты полей, связанные с форматированием, атрибуты value писать не стоит. Теги input типов submit и reset никаким специальным образом не обрабатываются. После выполнения запроса POST будет произведен запрос woo-write (или множество запросов woo-write в случае использования редактируемой таблицы). В случае ошибки во время выполнения запроса, будет выведена соответствующая информация. Если запрос завершится успешно, то пользователю в ответ придёт форма c обновлённым состоянием полей.

Параметры

Данный frontend управляетcя двумя параметрами:


Картотека (card-index)

Двойная форма, применяется для управлением серией однотипных объектов. В html-шаблоне присутствуют две формы. Одна управляет основным объектом, а также в ней размещается селектор подъобекта. Во второй форме выводятся параметры очередного выбранного объекта. Возможно также удаление объекта и создание нового. frontend может также применяться для моделирования «двух-уровневого» выбора.

<FORM class="selector-chooser">

Форма основного объекта. Подстановка параметров происходит так же как и во frontend form. Важное исключение, <SELECT name="name"> обрабатывается особым образом. Делается запрос woo-list по адресу <урл> и заполняется именами подобъектов, по-умолчанию выделяется первый объект в списке, для него же заполняется вторая форма. Внутри именно этой формы должны размещаться кнопки для : выбора, создания и удаления подобъекта, а также сохранения параметров основного объекта.

<FORM class="selector-data">

Форма подобъекта. Подстановка параметров происходит так же как и во frontend form. Важная особенность. Обязательно должен присутствовать <DIV class="selector-name"> или пустой или содержащий поле с именем name. Это поле будет использоваться при создании нового экземпляра объекта. Внутри именно этой формы должна размещаться кнопка для изменения состояния подобъекта. Также этот DIV используется для размещения служебных скрытых полей для определения вида производимой над подъобъектом операции.

Кнопки

Данный frontend различает нажатия разных submit. Возможны следующие варианты (указываются в атрибуте name тега INPUT):


Параметры

Данный frontend поддерживает точно такие же параметры как и frontend form.

Визуальные эффекты

FBI автоматически подключает эффекты для constraints. Есть также несколько дополнительных украшений.

Ajax password

Поле ввода пароля с возможностью автоматической генерации оного. Для работы требуется бакенд pwgen. Чтобы задействовать этот эффект необходимо включить скрипт /fbi/password.js и отметить div с двумя полями типа password (атрибуты name должны быть равны соответственно passwd1 и passwd2) параметром id со значением “ajax-password”. Note: В будущем, если потребуется, будет возможно использовать несколько полей такого типа в одной форме.


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]