Представления объекта домена
Этот раздел описывает представления единичного объекта домена.
| Ознакомьтесь с правилами нотации в схеме домена. Это позволит присваивать корректные названия создаваемым элементам схемы. Эти названия будут отображаться в интерфейсе системы. |
Структура поля views
Путь в схеме: views[]
Общие поля представлений
| Поле | Обязательность и значение по умолчанию | Описание | Тип данных |
|---|---|---|---|
|
Да |
Уникальный идентификатор интерфейса. |
View ID |
|
Нет (по умолчанию: пустая строка) |
Наименование, используемое в заголовках. Для полноэкранной карточки поддерживаются форматы: |
строка |
|
Нет (по умолчанию: пустая строка) |
Описание элемента. Не выводится в интерфейсе, но отображается на схеме домена. |
строка |
|
Да |
Тип интерфейса. Устанавливается значение |
перечисление |
Поля представления объекта
Описание представления типа entity дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
Data ID Ref или FQID |
Ссылка на идентификатор сущности. |
|
нет |
View ID Ref |
Ссылка на представление сущности, от которого нужно наследовать настройки. Ознакомьтесь с описанием поля |
|
да |
массив |
Массив записей виджетов, используемых в представлении. |
|
да |
массив |
Массив записей групп виджетов. |
|
да |
массив |
Массив записей, описывающих конкретные карточки объекта. |
|
нет (по умолчанию — |
логическое |
Переключатель, разрешающий использовать представление в примеси другого домена. При |
Наследование в представлении объекта (inherits)
Путь в схеме: views[].inherits
В поле можно указать идентификатор представления той же сущности или родительской сущности, в том числе из другого домена.
Виджеты, группы и карточки наследуются автоматически. Кроме того, их можно дополнять и переопределять поэлементно. В зависимости от типа поля применяется следующее поведение:
Пример наследования в представлении объекта
views:
...
views:
- id: panels_info
type: panel
label: Name
menu:
- action: actions_computer_edit
- action: actions_computer_remove
- action: actions_computer_openGV
tabs:
- tab: ci.example.com/CI.tabs_info
- tab: tabs_computer_specs
- tab: tabs_computer_apps
views:
...
views:
- id: panels_info_new
type: panel
inherits: hw.example.com/panels_info
menu:
# Можно опустить блок, поведение по умолчанию.
- inherit:
type: append
tabs:
- inherit:
# Здесь блок описан, так как нужно расширить поведение.
type: append
- tab: new_tab
В данном примере в меню панели panels_info_new отображаются те же действия, что и в меню панели panels_info. На панели panels_info_new расположены все вкладки панели panels_info в исходном порядке, а после них — вкладка new_tab.
Виджеты (widgets)
Поле widgets представляет собой массив записей, описывающих виджеты — визуальные компоненты интерфейса. Ознакомьтесь с описанием виджетов в схеме домена.
Группы виджетов (groups)
Поле groups представляет собой массив записей визуальных элементов, на которые ссылается представление. Ознакомьтесь с описанием групп виджетов в схеме домена.
Структура поля views
Путь в схеме: views[].views[]
Поле views содержит массив записей, описывающих различные представления экземпляра сущности. Каждая запись включает общие поля, а также специфические поля, которые зависят от типа представления, указанного в поле type.
Общие поля для всех типов представлений объекта
Конфигурация интерфейса объекта включает следующие поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
View ID |
Уникальный идентификатор карточки объекта. |
|
нет (по умолчанию — пустая строка) |
строка |
Описание элемента домена. |
|
да |
перечисление |
Определяет тип карточки объекта, который влияет на поведение и возможности интерфейса с учетом контекста использования. Ознакомьтесь со списком доступных типов. |
|
нет |
View ID Ref |
Ссылка на карточку, от которой нужно наследовать настройки. Карточка должен иметь такой же тип и относиться к представлению, указанному в поле |
|
нет (по умолчанию — пустая строка) |
строка |
Название, отображаемое в интерфейсе. Ознакомьтесь с описанием поля |
Типы представлений объекта (type)
Путь в схеме: views[].views[].type
Поле type может принимать следующие значения:
-
panel— информационная панель, которая может отображать вкладки — группы представлений с типомtab. -
modal— модальное окно, которое может отображать форму — группу представлений с типомform. -
page— представление полноэкранной карточки объекта.
Панель (type: panel)
Настройки компактного представления сущности определяют отображение детальной информации о выбранном экземпляре сущности. Описание карточки типа panel дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
нет |
массив |
Действия, отображаемые в меню панели. Ознакомьтесь с описанием поля |
|
да |
массив |
Вкладки, отображаемые на панели. Ознакомьтесь с описанием поля |
|
нет |
массив |
Нижняя секция панели. Содержит массив полей |
|
нет |
массив |
Массив полей Ознакомьтесь с примером использования. |
Схема записи панели
views:
# Уникальный идентификатор.
- id:
# Описание.
description:
# Тип представления (панель).
type: panel
# Название панели.
label:
# Меню панели.
menu:
# Действие.
- action:
# Параметры управления.
# Массив записей вкладок панели.
tabs:
# Идентификатор вкладки.
- tab:
Пример настройки действий при сохранении данных
actions:
- id: markRead
name: Пометить как прочитанное
type: set_attribute_value
entity: Server
values:
- attribute: isViewedByUser
value: true
views:
- id: serverView
type: entity
entity: Server
views:
- id: panels_info
description: Детали сервера
type: panel
...
onView:
- action: markRead
views:
- id: server_view
type: entity
entity: Server
views:
- id: forms_new
description: Форма создания сущности
type: modal
form: blocks_forms_new
...
buttons:
- type: submit
label: Добавить
control:
type: 'regular_button'
actions:
- action: markRead
- type: close
label: Отменить
control:
type: 'regular_button'
Меню панели (menu)
Путь в схеме: views[].views[].menu[]
Блок menu является массивом и содержит:
Порядок записей действий в схеме домена определяет последовательность действий в меню. Унаследованные действия выводятся вместе там, где указано поле inherit.
Наследование пунктов меню (inherit)
Путь в схеме: views[].views[].menu[].inherit
Поле имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
нет (по умолчанию: |
перечисление |
Тип наследования. Доступные значения:
Ознакомьтесь с описанием типов наследования. |
|
да (при |
массив |
Массив ссылок на действия, которые не нужно наследовать. |
Типы наследования меню (type)
Путь в схеме: views[].views[].menu[].inherit.type
Доступные типы наследования включают:
-
append— наследовать все действия меню и добавить действия, описанные в массивеmenu. -
override— не наследовать действия меню. Необходимо описать действия в массивеmenu. -
except— наследовать все действия, кроме тех, которые перечислены в полеexcept.
Вкладки панели (menu)
Путь в схеме: views[].views[].tabs[]
Блок tabs является массивом и содержит:
Порядок записей вкладок в схеме домена определяет последовательность вкладок на панели. Унаследованные вкладки выводятся вместе там, где указано поле inherit.
Наследование вкладок (inherit)
Путь в схеме: views[].views[].tabs[].inherit
Поле имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
нет (по умолчанию: |
перечисление |
Тип наследования. Доступные значения:
Ознакомьтесь с описанием типов наследования. |
|
да (при |
массив |
Массив ссылок на вкладки, которые не нужно наследовать. |
Типы наследования вкладок (type)
Путь в схеме: views[].views[].tabs[].inherit.type
Доступные типы наследования включают:
-
append— наследовать все вкладки и добавить вкладки, описанные в массивеtabs. -
override— не наследовать вкладки. Необходимо описать вкладки в массивеtabs. -
except— наследовать все вкладки, кроме перечисленных в полеexcept.
Модальное окно (type: modal)
Описание карточки типа modal дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
View ID Ref |
Ссылка на группу с типом |
|
нет (по умолчанию — кнопки Подтвердить и Отменить) |
массив |
Кнопки отправки формы и отмены, отображаемые в модальном окне. Доступно только для представлений с типом Ознакомьтесь с описанием поля |
|
нет |
массив |
Кнопки действий, которые отображаются в нижней части модального окна. Ознакомьтесь с описанием поля |
Схема записи модального окна
views:
# Уникальный идентификатор.
id:
# Описание.
description:
# Тип представления (модальное окно).
type: modal
# Ссылка на форму (описывается в поле groups с типом form).
form:
# Название модального окна.
label:
Кнопки отправки и отмены (buttons)
Путь в схеме: views[].views[].buttons[]
Поле buttons используется для описания кнопок отправки и отмены, отображаемых в модальном окне. Каждый элемент массива имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
перечисление |
Тип кнопки. Доступные значения типа:
|
|
нет |
строка |
Название кнопки. Если значение не указано, система добавляет название по умолчанию. Ознакомьтесь с описанием поля |
|
нет |
объект |
Элемент управления для кнопки. Ознакомьтесь с описанием поля |
|
нет |
массив |
Массив полей |
Схема записи кнопки
buttons:
# Название кнопки.
- label:
# Описание типа кнопки.
type:
# Описание настроек параметров управления.
control:
# Тип параметра управления (кнопка).
type: regular_button
# Идентификатор медиаресурса для иконки кнопки.
icon:
Действия в модальном окне (footer)
Путь в схеме: views[].views[].footer[]
Поле footer используется для создания массива записей кнопок, отображаемых в модальном окне. Каждый элемент массива имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
View ID Ref |
Действие, которое будет вызвано при нажатии на кнопку. Можно указывать только действия со следующими типами:
|
|
да |
перечисление |
Поведение при вызове действия. Допустимые значения:
|
|
нет |
объект |
Элемент управления для кнопки. Ознакомьтесь с описанием поля |
Пример описания нижней секции модального окна
views:
...
- id: forms_new
description: Форма создания сущности
type: modal
form: blocks_forms_new
label: Добавление экземпляра сущности
footer:
- action: enrichIoc
behavior: run_submit
- action: sendNotification
behavior: run
control:
type: regular_button
icon: icons@notification
Элемент управления кнопки (control)
Путь в схеме:
-
views[].views[].buttons[].control -
views[].views[].footer[].control
Поле имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
перечисление |
Устанавливается значение |
|
да |
строка |
Имя иконки. |
Полноэкранная карточка (type: page)
Описание карточки типа page дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
View ID Ref |
Ссылка на идентификатор элемента меню. Используется для составления URL полноэкранной карточки и подсветки пункта меню, к которому относится сущность. |
|
да |
массив |
Панель действий карточки объекта.
Указывается массив полей |
|
нет |
View ID Ref |
Группа типа |
|
нет |
массив |
Массив полей |
|
нет |
объект |
Блок, закрепленный в карточке для постоянного отображения. Ознакомьтесь с описанием поля |
|
нет |
массив |
Массив полей |
Панель действий (actionPanel)
Путь в схеме: views[].views[].actionPanel[]
Блок actionPanel является массивом и содержит:
Наследование пунктов меню (inherit)
Путь в схеме: views[].views[].actionPanel[].inherit
Поле имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
нет (по умолчанию: |
перечисление |
Тип наследования. Доступные значения:
Ознакомьтесь с описанием типов наследования. |
|
да (при |
массив |
Массив ссылок на действия, которые не нужно наследовать. |
Типы наследования панели действий (type)
Путь в схеме: views[].views[].actionPanel[].inherit.type
Доступные типы наследования включают:
-
append— наследовать все виджеты панели действий и добавить виджеты, описанные в массивеactionPanel. -
override— не наследовать виджеты панели действий. Необходимо описать виджеты в массивеactionPanel. -
except— наследовать все виджеты панели действий, кроме тех, которые перечислены в полеexcept.
Закрепленный блок (pinnedView)
Настройки в поле pinnedView определяют, какой блок будет закреплен для постоянного отображения в карточке. Поле имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Описание | Тип данных |
|---|---|---|---|
|
Да |
Ссылка на группу или виджет, закрепленные на странице. |
Data ID Ref |
|
Нет |
Параметры закрепления блока. Допустимые значения:
|
перечисление |
|
Нет |
Минимальная высота блока. Задается в процентах или пикселях, например, |
строка |
|
Нет |
Максимальная высота блока. Задается в процентах или пикселях, например, |
строка |
Настройка интерфейса полноэкранной карточки объекта
Полноэкранная карточка объекта отображается на всю рабочую область экрана. В полноэкранной карточке можно отображать следующие визуальные элементы интерфейса, которые должны быть предварительно описаны в схеме:
-
виджеты действий, отображаемые на панели действий над карточкой.
-
блоки контента полноэкранного представления, содержащие виджеты или наборы виджетов. Блоки могут содержать несколько вкладок.
-
панель вкладок полноэкранного представления. Каждая вкладка содержит по крайней мере один блок полноэкранного представления.
Возможны следующие варианты отображения полноэкранной карточки:
-
блок контента полноэкранного представления или несколько блоков. Блоки включают в себя виджеты или группы виджетов. Вкладки отсутствуют.
-
блок, включающий несколько вкладок с виджетами или группами виджетов.
-
панель вкладок, содержащих блоки контента. Блоки могут содержать вкладки.
В каждом варианте в зависимости от настроек может отображаться панель действий карточки.
Действия создания и редактирования объектов в полноэкранной карточке
Вы можете задать в схеме домена действие, использующее конфигурацию type = open_page и operation = create. Виджет действия, ссылающийся на это действие, позволяет отобразить полноэкранную карточку в режиме создания объекта. Здесь можно указать данные для создания нового объекта текущей сущности. В панели действий карточки в режиме создания всегда первой отображается кнопка Создать, позволяющая сохранить созданный объект.
Если действие использует конфигурацию type = open_page и operation = edit, его виджет позволяет отобразить полноэкранную карточку в режиме редактирования объекта. В карточке можно отредактировать объект текущей сущности.
В панели действий карточки в режиме редактирования всегда первой отображается кнопка Сохранить, позволяющая сохранить внесенные изменения.
| Перед сохранением данных карточки объекта убедитесь, что все необходимые поля заполнены. |
Блок контента полноэкранной карточки
Ссылка на блок контента размещается в поле block интерфейса полноэкранной карточки. Блок контента может содержать набор виджетов или несколько вкладок с наборами виджетов.
| Элемент | Как задается в схеме домена |
|---|---|
Заголовок |
Поле |
Набор виджетов в блоке контента |
В поле |
Панель вкладок в блоке контента |
Массив ссылок на вкладки в интерфейсе объекта.
|
Отображаемая вкладка или блок виджетов |
Ссылка на вкладку в интерфейсе объекта, размещенная первой в массиве ссылок, или ссылка на блок с набором виджетов атрибутов.
|
Панель вкладок полноэкранной карточки
Ссылки на вкладки панели размещаются как записи массива в поле tabs интерфейса полноэкранной карточки. Каждая вкладка содержит по крайней мере один блок контента.
| Элемент | Как задается в схеме домена |
|---|---|
Заголовок |
Поле |
Вкладка в панели вкладок |
Описывается как ссылка на вкладку в массиве ссылок на вкладки в интерфейсе объекта. Каждая вкладка содержит как минимум одну ссылку на блок контента. |
Отображаемая вкладка или блок виджетов |
Описывается как ссылка на вкладку панели, размещенная первой в поле tabs. Вкладка описывается в поле |
Отображение в блоке контента двух секций регулируемой ширины
В блоке контента можно отображать две секции, каждая из которых представляет собой блок с виджетами. Для этого:
-
Опишите блок с двумя секциями:
-
Укажите в поле
groupsинтерфейса объекта группу типаresizable_block_pair. -
Укажите в группе ссылки на блоки, отображаемые в секциях блока контента.
-
Укажите параметры ширины секций.
-
-
Сошлитесь на идентификатор блока с двумя секциями при описании блока контента.
Размеры секций блока в интерфейсе можно изменять, перетаскивая их границы курсором мыши.
Была ли полезна эта страница?