Alterator/form: различия между версиями

Материал из ALT Linux Wiki
(→‎Функции модификации значений полей: добавил описание как собирать data из фронтедна)
Нет описания правки
 
(не показана 1 промежуточная версия 1 участника)
Строка 7: Строка 7:


Пример:
Пример:
<source lang="scheme">
<source lang="lisp">
(label text "Field name" name "field")(edit name "field" value "Field value")
(label text "Field name" name "field")(edit name "field" value "Field value")
</source>
</source>
Строка 14: Строка 14:


Пример:
Пример:
<source lang="scheme">
<source lang="lisp">
(label name "field" value "Field label") ;; Ошибка!!!
(label name "field" value "Field label") ;; Ошибка!!!
(label name "field" value "Static field")
(label name "field" value "Static field")
Строка 43: Строка 43:
* '''(form-popup url . url-args)''' — вызвать страницу по адресу <tt>url</tt> как popup и передать аргументы <tt>url-args</tt>
* '''(form-popup url . url-args)''' — вызвать страницу по адресу <tt>url</tt> как popup и передать аргументы <tt>url-args</tt>


[[Категория:Alterator]]
{{Category navigation|title=Alterator|category=Alterator|sortkey={{SUBPAGENAME}}}}

Текущая версия от 20:21, 20 июля 2015

Модуль (alterator lookout form)


Адресация полей

Каждое поле адресуется по значению атрибута name. Метка поля должна иметь имя, совпадающее с именем соответствующего ей поля.

Пример:

(label text "Field name" name "field")(edit name "field" value "Field value")

Исключение — в качестве поля выступает виджет label. В этом случае метки с тем значением атрибута name быть не должно.

Пример:

(label name "field" value "Field label") ;; Ошибка!!!
(label name "field" value "Static field")

Функции доступа к значениям полей

  • (form-value name) — получить значение поля с именем name
  • (form-value-list . namelist) — получить полный список имён полей и их значений в формате plist. namelist - необязательный параметр, список строк - имён полей. В этом случае ответ будет содержать имена и значения только тех имён что перечислены в этом списке.

Функции модификации значений полей

  • (form-update-value name value) — изменить значение поля с именем name на значение value.
  • (form-update-value-list namelist data) — заполнить поля с именами перечисленными в списке namelist согласно значениям data возвращённым командой woo-read-first
  • (form-update-enum name data) — заполнить поле с именем name типа enum списком значений data, возвращённым командой woo-list

Если мы хотим вручную сформировать список значений data во фронтенде, это можно сделать следующим образом: (list (list "" "name" enum1 "label" label_for_enum1) (list "" "name" enum2 "label" label_for_enum2)) Здесь enum1,enum2 — значения, которые будет принимать поле, label_for_enum1,label_for_enum2 — текст, который будет выводиться пользователю.

Функции модификации состояний полей

Эти функции меняют свойства одновременно и полей и меток к ним.

  • (form-update-visibility namelist status) - изменить видимость поля в соотвестствии со значением переменной status - булевого типа. namelist - или список имён полей или одно поле.
  • (form-update-activity namelist status) - изменить активность поля в соответствии со значением переменной status - булевого типа. namelist - или список имён полей или одно поле.

Другие функции

  • (form-bind name event proc) — привязать вызов процедуры proc в случае возникновения события event в виджете с именем name. Допустимые события: «click», «change».
  • (form-replace url . url-args) — перенаправить на страницу по адресу url и передать аргументы url-args
  • (form-popup url . url-args) — вызвать страницу по адресу url как popup и передать аргументы url-args