Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/Alterator/rails ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Sisyphus/Alterator/rails за 2007-02-10 00:38:02..

Scheme on rails

Alterator on Air

(alterator fbi)


Как показал опыт эксплуатации Alterator, главная проблема с которой сталкивается пользователь этой системы – создание динамического интерфейса. Бакенд пишется мгновенно, а как только требуется изобразить что-то на экране – возникает полное непонимание того как нарисовать красивый виджет, да ещё чтобы при нажатии на разные кнопочки. Проект FBI призван решить эту проблему.


«Нарисовать»
Единственный вид работы над интерфейсом, который предлагается пользователю – создание простейших HTML-форм.
Наряду с понятием backend появляется понятие frontend. Frontend – это backend описывающий workflow, логику обработки и перехода между разными формами. То есть frontend – это именно то, чего боится каждый пользователь и на что не хотел бы тратить время системный администратор.
На данный момент frontend пишется только на Scheme (в отличие от backend), но в будущем это ограничение будет снято и, кроме того, возможных паттернов диалога пользователь-компьютер на порядок меньше чем объектов, которые эти диалоги отображают.


«Красивый»
Пользователю достаточно задать основную структуру формы. Если потребуется сделать вариант «на продажу», специально обученный человек (именуемый дизайнер) при помощи CSS и даже Java Script? сможет навести весь необходимый лоск.


«Динамический»
workflow задаёт последовательность обмена формами. Но при помощи Java Script? и Ajax этот способ общения легко превращается в привычный любому пользователю стиль работы с desktop приложениями. То что в основе лежит примитивный обмен формами позволяет работать с браузерами без богатых возможностей, в том числе и текстовыми.


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

Пробуем


Пусть встала задача создания конфигуратора общих сетевых настроек: имя машины, DNS, варианты забора параметров через dhcp.


Шаг 1. Бакенд.


Пользуясь любимым языком программирования системных администраторов – shell, пишем бакенд управления настройками сети. Более подробно прочитать об этом можно в разделе посвящённым бакендам. Самый простой и удобный способ протестировать бакенд – это утилита alterator-cmdline:



Итого наш бакенд управляет следующими параметрами:


Также заданы следующие ограничения на параметры:



Переводя на литературный, этим сказано следующее:


Шаг 2. Форма.


Теперь давайте нарисуем шаблон формы.
Внешне она выглядит так:



А html-код продемонстрирован ниже:


Как видите, самая обычная форма, но ... с одной маленькой хитростью. Имена полей совпадают с именами параметров объекта в представлении бакенда.
В данном примере сделаны некоторые попытки украсить внешний вид, но, в принципе, можете оставить эту работу дизайнеру.


Шаг 3. Фронтенд.


Данный пример замечательно подходит под модель «форма», то есть пользователь проводит изменения, нажимает на кпопку submit и в системе модифицируются сетевые настройки.


Связывание backend и frontend происходит с помощью вспомогательного бакенда, который отвечает на запрос template сдедующее:



Этим сказано, что бакенд /net-general желает иметь интерфес с логикой работы типа “form” (или говоря правильными терминами frontend по имени form) и предлагает использовать html-файл, размещённый по указанному адресу в качестве «затравки» ( не исключаю что возможны frontend с элементами искуственного интеллекта, которым можно передать текстовый файл с перечилением идей).


Замечание: вспомогательный бакенд существует отдельно по одной единственной причине, чтобы отделить логику представления от логики работы. Если вам лень городить дополнительные файлы, то можно сделать символическую ссылку template-<backend> на <backend> и научить свой бакенд отвечать на вопрос template.


Шаг 4. Браузер.


Ну вот собственно и всё. Запускаем fbi, запускаем браузер, идём по адресу http://hostname/fbi-bin/alterator-template.scm/net-general и наблюдаем результат:



Вот и собственно и всё ... форма заполнилась данными, подключились constraints (требуемое поле выделенно звёздочкой, ненужные поля погашены). Можно переходить к написанию следующих конфигураторов.



Rails Comments By Nbr


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