Использование
Параметры
Начиная с версии ui 21.1200.0 появилась возможность создавать на стандартной панели инструментов свои кнопки наряду со стандартными "Сохранить" и "Отменить". На эти кнопки можно назначить произвольные действия, соответствующие действиям, определённым в
class.php
Поддержка классов компонентов реализована в виде файла /component_name/class.php. Class.php - это зарезервированное имя файла, и этот файл автоматически подключается при вызове $APPLICATION->IncludeComponent()
Подробнее...
компонента.
В дальнейшем также планируется поддержка действий, описанных в
ajax.php
Обработчик контроллера запросов в файле ajax.php позволяет создать легковесный обработчик аякс-запросов, явно выделяя логику из компонента.
Подробнее...
.
За дополнительные действия отвечают следующие параметры компонента bitrix:ui.form:
Параметр | Структура | Версия |
---|---|---|
COMPONENT_AJAX_DATA | ADDITIONAL_ACTIONS - массив, описывающий дополнительные действия.
| с ui 21.1200.0 |
CUSTOM_TOOL_PANEL_BUTTONS | Массив, описывающий дополнительные кнопки на панели кнопок
| с ui 21.1200.0 |
TOOL_PANEL_BUTTONS_ORDER | Параметр, позволяющий задавать порядок кнопок в режимах просмотра и редактирования сущности.
В качестве идентификаторов стандартых кнопок используются константы
| с ui 21.1200.0 |
Примеры использования
На примере документов складского учёта.
Описание действий:
$this->arResult['FORM']['ADDITIONAL_ACTIONS'] = [ [ 'ID' => 'SAVE_AND_CONDUCT', 'ACTION' => 'saveAndConduct', 'ACTION_TYPE' => UI\EntityEditor\Action::ACTION_TYPE_SAVE, ], [ 'ID' => 'CONDUCT', 'ACTION' => 'conduct', 'ACTION_TYPE' => UI\EntityEditor\Action::ACTION_TYPE_DIRECT, ], [ 'ID' => 'CANCEL_CONDUCT', 'ACTION' => 'cancelConduct', 'ACTION_TYPE' => UI\EntityEditor\Action::ACTION_TYPE_DIRECT, ], ];
Описание кнопок:
$this->arResult['FORM']['CUSTOM_TOOL_PANEL_BUTTONS'] = [ [ 'ID' => 'SAVE_AND_CONDUCT', 'TEXT' => Loc::getMessage('CATALOG_STORE_DOCUMENT_SAVE_AND_CONDUCT_BUTTON'), 'ACTION_ID' => 'SAVE_AND_CONDUCT', 'CLASS' => 'ui-btn-light-border', ], [ 'ID' => 'CONDUCT', 'TEXT' => Loc::getMessage('CATALOG_STORE_DOCUMENT_CONDUCT_BUTTON'), 'ACTION_ID' => 'CONDUCT', 'CLASS' => 'ui-btn-light-border', ], [ 'ID' => 'CANCEL_CONDUCT', 'TEXT' => Loc::getMessage('CATALOG_STORE_DOCUMENT_CANCEL_CONDUCT_BUTTON'), 'ACTION_ID' => 'CANCEL_CONDUCT', 'CLASS' => 'ui-btn-light-border', ], ];
Описание порядка кнопок на панели:
$viewButtons = $this->document && $this->document['STATUS'] === 'Y' ? ['CANCEL_CONDUCT'] : ['CONDUCT']; $this->arResult['FORM']['TOOL_PANEL_BUTTONS_ORDER'] = [ 'VIEW' => $viewButtons, 'EDIT' => [ UI\EntityEditor\Action::DEFAULT_ACTION_BUTTON_ID, 'SAVE_AND_CONDUCT', UI\EntityEditor\Action::CANCEL_ACTION_BUTTON_ID, ], ];
При выполнении прямого действия данные с формы не передаются; для идентификации сущности можно использовать, например, подписанные параметры.