Парсинг форм
Формат данных, принимаемых функцией parseForm:
[
{
"key": "body_panel",
"components": [
{
"label": "Юридическое лицо",
"key": "agreementLegalEntity",
"properties": {
"attribute": "_ECM_contracts:agreementLegalEntity"
},
"type": "selectJournal",
"input": true,
"value": ""
},
...
]
},
{
"key": "footer_panel",
"components": [
{
"type": "columns",
"columns": [
{
"components": [
{
"label": "Rework",
"key": "outcome_Rework",
"type": "button",
"action": "submit"
},
...
]
},
...
]
},
{
"label": "Rework",
"key": "outcome_Rework",
"type": "button",
"action": "submit"
},
...
]
},
...
]
Получение элементов для отображения в списке свойств:
компоненты из массива первого уровня фильтруются по ключу
"key": "body_panel"перебираем элементы массива
components, фильтруем их по свойству"input": trueв случае если
"type": "button", элемент отбирается для передачи в функцию рендера, для локализации используется атрибутlabel; элементы с другими типами также отбираются для рендера, с тем отличием, что для локализации используется свойствоattributeс обрезанным префиксом_ECM_данные с формой связаны по ключу
attributeдля отображения в интерфейсе используется свойство
value, которое в зависимости отtypeформатируется как строка или дата
Получение элементов для отображения на панели согласования (кнопки):
компоненты из массива первого уровня фильтруются по ключу
"key": "footer_panel"перебираем элементы массива
columns.components, фильтруем их по свойству"type": "button"; если встречаются элементы с типомcolumns, необходимо отобрать первый элемент массива в свойствеcomponents; для локализации используется атрибутlabelобработчик клика по кнопке ожидает значение из свойства
label