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

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:



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


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



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


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



А html-код устроен таким образом, что нам надо просто «добавить» свои поля к div отмеченным соответствующим классом.


Сразу оговорюсь, что возможно производить любые модификации созданного шаблона, вплоть до создания собственных тегов со специальными параметрами.


Итак, все компоненты готовы, начинаем собирать наше творение воедино.


Возможны два подхода к определению связи между url и шаблоном. Первый способ мы уже рассмотрели выше – в бакенде-»спутнике» определяется имя желаемого шаблона. Но создавать бакенд из-за одной строчки не всегда удобно, поэтому есть второй вариант – можно привязать шаблон к определённым url.
В этом случае используемому url может вообще не соответствовать какой-либо реальный бакенд.


Именно так мы и поступим:



Что же тут происходит?


Регистрируются два обработчика. Один на get запросы, второй на post.
В каждом из случаев производятся запросы к соответствующем бакенду и результат выводится в виде «подстановок» в готовой html страничке, созданной дизайнером.
Использование html-шаблона вовсе не обязательно, но предпочтительно.


Созданный шаблон назовём так как нам нравится (например net-general.scm) и поместим в каталог /usr/share/alterator/templates.


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



Вот и всё, интерфейс готов к употреблению.


Конечно я не вдавался в подробности как создаются собственные интерфейсные шаблоны – всё будет описано в отдельном документе.
Rails Comments By Nbr


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