Form
Модуль используется для создания, редактирования или развернутого отображения данных.
Имеет следующую структуру:
areas - зоны формы. Состоят и блоков (blocks), которые в свою очередь состоят из полей (fields). Подробнее об этом ниже.
object, command, data - . Части данных, используемых при отправке формы на сервер (совместно с формой). Свойство data используется для указания значений, необходимых для отправки, но не имеющих собственного поля.
command_type - свойство необходимо для регулирования поведения формы. Так, например, при значении update происходит проверка на соответствие инициализационных данных и данных для отправки, что отсутствует при типе add или custom. При наличии проверки о отсутствии изменений запрос на сервер не отправляется с целью оптимизации.
type - формат отправляемого запроса. Выбор зависит от наличия файлов в отправляемой форме.
close_after_submit - свойство используется для закрытия модального окна, в котором находится данная форма. Схоже со свойством в кнопках с типа modal, но используется для более точечного регулирования поведения, когда в модальном окне может быть несколько форм.
is_disabled - отключение всех полей формы.
Зоны состоят из блоков и определяют их ширину. Блоки в свою очередь имеют заголовок, который является не обязательным, а так же список полей.
Стандартная структура поля представляет из себя следующий объект:
title - заголовок поля.
annotation - развернутая дополнительная информация.
article - артикул поля, под которым будет существовать значение в форме.
data_type - тип данных поля.
field_type - тип поля. Подробнее об этом ниже.
is_required - обязательность поля для заполнения.
is_disabled - отключение поля.
is_visible - видимость поля.
description - краткое описание поля.
hook - свойство для отправки запроса на форматирование прочих данных формы, когда изменяются данные данного поля.
settings - объект для расширенных настроек под отдельные типы полей.
value - инициализационное значение поля.
size - размер поля относительно родительского блока.
В системе используются поля следующих типов:
string, year, integer, float, email, password - cтандартный объект поля расширен свойством suffix, позволяющим передать определенный символ после данных в поле. Свойство применяется только к типам integer и float.
textarea - поле с возможностью ввода информации в несколько строк. Объект settings расширен необязательным свойством rows, указывающим инициализационное количество строк для поля.
link, link_list, color_list - выпадающий список. Стандартный объект поля расширен следующими свойствами:
joined_field - вариативное свойство, дающее возможность выстроить зависимость фильтрации выпадающего списка относительно значения из другого поля формы.
joined_field_filter - вариативное свойство, использующееся, когда присутствует зависимость от значения другого поля, но это значение необходимо представить серверу под другим артикулом в контексте запроса выпадающего списка.
search - свойство, устанавливающее правило о том, является ли выпадающий список - поисковым.
settings:
object - объект запроса для получения списка при взаимодействии с полем (get или search).
select, select_menu - часть данных, необходимая для запроса на получение списка. Форматирует структуру пунктов выпадающего списка. Выражается в списке артикулов или единственном артикуле.
is_duplicate - свойство предоставляет возможность выбирать несколько раз одно и то же значение из списка.
list_donor - свойство является не отформатированным settings, которое хранится в базе. При определенных обстоятельствах может приходить в схеме вместо settings. Имеет следующую структуру:
table - аналог объекта запроса из settings.
properties_title, select - аналог select из settings.
select_menu - аналог select_menu из settings.
is_duplicate - аналог is_duplicate из settings.
price - поле для вывода сумм в корректной валюте. В качестве суффикса применяется значение, переданное в инициализационном запросе, свойство currency ([[Инициализация приложения]]).
phone - поле для вывода номера телефона. Объект расширен свойством script, представляющим из себя объект со свойствами object, command, properties. Используется для отправки запроса после выполнения звонка. Возможность выполнить звонок присутствует при подключенной телефонии (свойство dom_ru ([[Инициализация приложения]])) к системе и наличии у авторизованного пользователя адреса звонящего.
date, time, datetime, month - поля для указания даты. В зависимости от типа меняется форматирование даты.
checkbox - поле для выставления boolean-значения.
dadata_address, dadata_country, dadata_region, dadata_local_area, dadata_city, dadata_street, dadata_passport - поле для ввода адреса с автоподсказкой. Использует сервис Dadata.
google_address - поле для ввода адреса с автоподсказкой. Использует сервис Google.
image - поле для загрузки или редактирования изображений. Объект расширен следующими свойствами:
settings:
allowed_formats - разрешенные для загрузки форматы.
max_size - максимальный размер одного изображения.
is_multiply - разрешено ли загружать несколько изображений.
is_editor - запускать ли редактор изображения при его загрузке.
editor - редактор верстки, обёрнутой в строку. Используется для создания или редактирования документов.
file - аналогично полю image, используется для загрузки файлов, но без предварительного просмотра изображений, если файл таковым является. Объект расширен следующими свойствами:
request_object - объект для запроса на удаление файла.
request_id - идентификатор для запроса на удаление файла.
settings:
allowed_formats - разрешенные для загрузки форматы.
max_size - максимальный размер одного изображения.
is_multiply - разрешено ли загружать несколько изображений.
is_editor - запускать ли редактор изображения при его загрузке.
radio - поле для выбора значения по принципу "одно из". Стандартный объект расширен единственным свойством list, которое представляет из себя список кнопок. Каждая кнопка - это объект со свойствами title и value.
info_string - Строка, стилизованная под поле. Используется для вывода дополнительной информации наряду с полями.
smart_list - поле, представляющее из себя список одинаковых комбинаций других полей с разными значениями. Используется для создания сложных вложенностей. Стандартный объект расширен следующими свойствами:
settings:
properties - массив полей.
is_header_shown - отображать ли заголовки полей в каждом экземпляре.
layout - поле для отображения верстки. Объект расширен следующими свойствами:
settings:
is_edit - возможно ли редактировать вёрстку. При значении в true появляется кнопка с переключением на поле editor для редактирования.