Представления объекта домена

Этот раздел описывает представления единичного объекта домена.

Ознакомьтесь с правилами нотации в схеме домена. Это позволит присваивать корректные названия создаваемым элементам схемы. Эти названия будут отображаться в интерфейсе системы.

Структура поля views

Путь в схеме: views[]

Общие поля представлений

Поле Обязательность и значение по умолчанию Описание Тип данных

id

Да

Уникальный идентификатор интерфейса.

View ID

label

Нет (по умолчанию: пустая строка)

Наименование, используемое в заголовках. Для полноэкранной карточки поддерживаются форматы: "строка" или "{<attribute_id>}".

строка

description

Нет (по умолчанию: пустая строка)

Описание элемента. Не выводится в интерфейсе, но отображается на схеме домена.

строка

type

Да

Тип интерфейса. Устанавливается значение entity.

перечисление

Поля представления объекта

Описание представления типа entity дополнительно включает поля:

Поле Обязательность и значение по умолчанию Тип данных Описание

entity

да

Data ID Ref или FQID

Ссылка на идентификатор сущности.

inherits

нет

View ID Ref

Ссылка на представление сущности, от которого нужно наследовать настройки.

Ознакомьтесь с описанием поля inherits.

widgets

да

массив

Массив записей виджетов, используемых в представлении.

groups

да

массив

Массив записей групп виджетов.

views

да

массив

Массив записей, описывающих конкретные карточки объекта.

isMixin

нет (по умолчанию — false)

логическое

Переключатель, разрешающий использовать представление в примеси другого домена.

При true представление отображается только в целевом объекте примеси.

Наследование в представлении объекта (inherits)

Путь в схеме: views[].inherits

В поле можно указать идентификатор представления той же сущности или родительской сущности, в том числе из другого домена.

Виджеты, группы и карточки наследуются автоматически. Кроме того, их можно дополнять и переопределять поэлементно. В зависимости от типа поля применяется следующее поведение:

  • Для полей menu и tabs можно определить режим наследования с добавлением или удалением элементов.

  • Поля label, onView, footer и block наследуются автоматически и могут быть переопределены в текущем представлении.

Пример наследования в представлении объекта
Панель, от которой наследуются настройки
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.

Общие поля для всех типов представлений объекта

Конфигурация интерфейса объекта включает следующие поля:

Поле Обязательность и значение по умолчанию Тип данных Описание

id

да

View ID

Уникальный идентификатор карточки объекта.

description

нет (по умолчанию — пустая строка)

строка

Описание элемента домена.

type

да

перечисление

Определяет тип карточки объекта, который влияет на поведение и возможности интерфейса с учетом контекста использования.

Ознакомьтесь со списком доступных типов.

inherit

нет

View ID Ref

Ссылка на карточку, от которой нужно наследовать настройки. Карточка должен иметь такой же тип и относиться к представлению, указанному в поле inherits.

label

нет (по умолчанию — пустая строка)

строка

Название, отображаемое в интерфейсе.

Ознакомьтесь с описанием поля label.

Типы представлений объекта (type)

Путь в схеме: views[].views[].type

Поле type может принимать следующие значения:

  • panel — информационная панель, которая может отображать вкладки — группы представлений с типом tab.

  • modal — модальное окно, которое может отображать форму — группу представлений с типом form.

  • page — представление полноэкранной карточки объекта.

Панель (type: panel)

Настройки компактного представления сущности определяют отображение детальной информации о выбранном экземпляре сущности. Описание карточки типа panel дополнительно включает поля:

Поле Обязательность и значение по умолчанию Тип данных Описание

menu

нет

массив

Действия, отображаемые в меню панели.

Ознакомьтесь с описанием поля menu.

tabs

да

массив

Вкладки, отображаемые на панели.

Ознакомьтесь с описанием поля tabs.

footer

нет

массив

Нижняя секция панели. Содержит массив полей action со ссылками на действия.

onView

нет

массив

Массив полей action со ссылками на действия, которые будут вызваны при открытии панели объекта. Можно указать только действия типа set_attribute_value.

Ознакомьтесь с примером использования.

Схема записи панели
 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'

Путь в схеме: views[].views[].menu[]

Блок menu является массивом и содержит:

  • Поле inherit с настройками наследования действий меню. Доступно, если заполнено поле inherits.

  • Ссылки на действия в формате action: <View ID Ref>.

Порядок записей действий в схеме домена определяет последовательность действий в меню. Унаследованные действия выводятся вместе там, где указано поле inherit.

Путь в схеме: views[].views[].menu[].inherit

Поле имеет следующую структуру:

Поле Обязательность и значение по умолчанию Тип данных Описание

type

нет (по умолчанию: append)

перечисление

Тип наследования. Доступные значения:

  • append;

  • override;.

  • except.

Ознакомьтесь с описанием типов наследования.

except

да (при type: except)

массив

Массив ссылок на действия, которые не нужно наследовать.

Путь в схеме: views[].views[].menu[].inherit.type

Доступные типы наследования включают:

  • append — наследовать все действия меню и добавить действия, описанные в массиве menu.

  • override — не наследовать действия меню. Необходимо описать действия в массиве menu.

  • except — наследовать все действия, кроме тех, которые перечислены в поле except.

Вкладки панели (menu)

Путь в схеме: views[].views[].tabs[]

Блок tabs является массивом и содержит:

  • Поле inherit с настройками наследования вкладок. Доступно, если заполнено поле inherits.

  • Ссылки на группы типа tab в формате tab: <View ID Ref>.

Порядок записей вкладок в схеме домена определяет последовательность вкладок на панели. Унаследованные вкладки выводятся вместе там, где указано поле inherit.

Наследование вкладок (inherit)

Путь в схеме: views[].views[].tabs[].inherit

Поле имеет следующую структуру:

Поле Обязательность и значение по умолчанию Тип данных Описание

type

нет (по умолчанию: append)

перечисление

Тип наследования. Доступные значения:

  • append;

  • override;.

  • except.

Ознакомьтесь с описанием типов наследования.

except

да (при type: except)

массив

Массив ссылок на вкладки, которые не нужно наследовать.

Типы наследования вкладок (type)

Путь в схеме: views[].views[].tabs[].inherit.type

Доступные типы наследования включают:

  • append — наследовать все вкладки и добавить вкладки, описанные в массиве tabs.

  • override — не наследовать вкладки. Необходимо описать вкладки в массиве tabs.

  • except — наследовать все вкладки, кроме перечисленных в поле except.

Модальное окно (type: modal)

Описание карточки типа modal дополнительно включает поля:

Поле Обязательность и значение по умолчанию Тип данных Описание

form

да

View ID Ref

Ссылка на группу с типом form.

buttons

нет (по умолчанию — кнопки Подтвердить и Отменить)

массив

Кнопки отправки формы и отмены, отображаемые в модальном окне. Доступно только для представлений с типом modal.

Ознакомьтесь с описанием поля buttons.

footer

нет

массив

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

Ознакомьтесь с описанием поля footer.

Схема записи модального окна
views:
 # Уникальный идентификатор.
 id:
 # Описание.
 description:
 # Тип представления (модальное окно).
 type: modal
 # Ссылка на форму (описывается в поле groups с типом form).
 form:
 # Название модального окна.
 label:

Кнопки отправки и отмены (buttons)

Путь в схеме: views[].views[].buttons[]

Поле buttons используется для описания кнопок отправки и отмены, отображаемых в модальном окне. Каждый элемент массива имеет следующую структуру:

Поле Обязательность и значение по умолчанию Тип данных Описание

type

да

перечисление

Тип кнопки. Доступные значения типа:

  • submit — при нажатии на кнопку данные отправляются в систему;

  • close — при нажатии на кнопку окно закрывается, а данные не отправляются.

label

нет

строка

Название кнопки. Если значение не указано, система добавляет название по умолчанию.

Ознакомьтесь с описанием поля label.

control

нет

объект

Элемент управления для кнопки. Ознакомьтесь с описанием поля control.

actions

нет

массив

Массив полей action со ссылками на действия, которые будут вызваны при сохранении данных. Доступно при type: submit. Можно указать только действия типа set_attribute_value.

Схема записи кнопки
buttons:
    # Название кнопки.
    - label:
      # Описание типа кнопки.
      type:
      # Описание настроек параметров управления.
      control:
          # Тип параметра управления (кнопка).
          type: regular_button
          # Идентификатор медиаресурса для иконки кнопки.
          icon:

Путь в схеме: views[].views[].footer[]

Поле footer используется для создания массива записей кнопок, отображаемых в модальном окне. Каждый элемент массива имеет следующую структуру:

Поле Обязательность и значение по умолчанию Тип данных Описание

action

да

View ID Ref

Действие, которое будет вызвано при нажатии на кнопку. Можно указывать только действия со следующими типами:

  • automation.

  • playbook. В контексте плейбука будет содержаться текущее состояние формы.

behavior

да

перечисление

Поведение при вызове действия. Допустимые значения:

  • run — запускается плейбук, окно не закрывается.

  • run_close — запускается плейбук, окно закрывается без отправки запроса системе.

  • run_submit — отправляется запрос на обработку и сохранение данных формы, затем запускается плейбук.

control

нет

объект

Элемент управления для кнопки. Ознакомьтесь с описанием поля control.

Пример описания нижней секции модального окна
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

да

перечисление

Устанавливается значение regular_button.

icon

да

строка

Имя иконки.

Полноэкранная карточка (type: page)

Описание карточки типа page дополнительно включает поля:

Поле Обязательность и значение по умолчанию Тип данных Описание

menuItem

да

View ID Ref

Ссылка на идентификатор элемента меню. Используется для составления URL полноэкранной карточки и подсветки пункта меню, к которому относится сущность.

actionPanel

да

массив

Панель действий карточки объекта. Указывается массив полей widget со ссылками на виджеты действий, описанные в блоке widgets.

block

нет

View ID Ref

Группа типа block, отображаемая в карточке. Нельзя использовать одновременно с tabs.

tabs

нет

массив

Массив полей tab с ссылками на вкладки, отображаемые в карточке. Нельзя использовать одновременно с block.

pinnedView

нет

объект

Блок, закрепленный в карточке для постоянного отображения.

Ознакомьтесь с описанием поля pinnedView.

onView

нет

массив

Массив полей action со ссылками на действия, которые будут вызваны при открытии карточки объекта. Можно указать только действия типа set_attribute_value.

Панель действий (actionPanel)

Путь в схеме: views[].views[].actionPanel[]

Блок actionPanel является массивом и содержит:

  • Поле inherit с настройками наследования действий меню. Доступно, если заполнено поле inherits.

  • Ссылки на виджеты действий в формате widget: <View ID Ref>.

Наследование пунктов меню (inherit)

Путь в схеме: views[].views[].actionPanel[].inherit

Поле имеет следующую структуру:

Поле Обязательность и значение по умолчанию Тип данных Описание

type

нет (по умолчанию: append)

перечисление

Тип наследования. Доступные значения:

  • append;

  • override;.

  • except.

Ознакомьтесь с описанием типов наследования.

except

да (при type: except)

массив

Массив ссылок на действия, которые не нужно наследовать.

Типы наследования панели действий (type)

Путь в схеме: views[].views[].actionPanel[].inherit.type

Доступные типы наследования включают:

  • append — наследовать все виджеты панели действий и добавить виджеты, описанные в массиве actionPanel.

  • override — не наследовать виджеты панели действий. Необходимо описать виджеты в массиве actionPanel.

  • except — наследовать все виджеты панели действий, кроме тех, которые перечислены в поле except.

Закрепленный блок (pinnedView)

Настройки в поле pinnedView определяют, какой блок будет закреплен для постоянного отображения в карточке. Поле имеет следующую структуру:

Поле Обязательность и значение по умолчанию Описание Тип данных

block

Да

Ссылка на группу или виджет, закрепленные на странице.

Data ID Ref

position

Нет

Параметры закрепления блока. Допустимые значения:

  • top — блок закрепляется вверху;

  • bottom — блок закрепляется внизу.

перечисление

minHeight

Нет

Минимальная высота блока. Задается в процентах или пикселях, например, 25% или 25px.

строка

maxHeight

Нет

Максимальная высота блока. Задается в процентах или пикселях, например, 25% или 25px.

строка

Настройка интерфейса полноэкранной карточки объекта

Полноэкранная карточка объекта отображается на всю рабочую область экрана. В полноэкранной карточке можно отображать следующие визуальные элементы интерфейса, которые должны быть предварительно описаны в схеме:

  • виджеты действий, отображаемые на панели действий над карточкой.

  • блоки контента полноэкранного представления, содержащие виджеты или наборы виджетов. Блоки могут содержать несколько вкладок.

  • панель вкладок полноэкранного представления. Каждая вкладка содержит по крайней мере один блок полноэкранного представления.

Возможны следующие варианты отображения полноэкранной карточки:

  • блок контента полноэкранного представления или несколько блоков. Блоки включают в себя виджеты или группы виджетов. Вкладки отсутствуют.

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

  • панель вкладок, содержащих блоки контента. Блоки могут содержать вкладки.

В каждом варианте в зависимости от настроек может отображаться панель действий карточки.

Действия создания и редактирования объектов в полноэкранной карточке

Вы можете задать в схеме домена действие, использующее конфигурацию type = open_page и operation = create. Виджет действия, ссылающийся на это действие, позволяет отобразить полноэкранную карточку в режиме создания объекта. Здесь можно указать данные для создания нового объекта текущей сущности. В панели действий карточки в режиме создания всегда первой отображается кнопка Создать, позволяющая сохранить созданный объект.

Если действие использует конфигурацию type = open_page и operation = edit, его виджет позволяет отобразить полноэкранную карточку в режиме редактирования объекта. В карточке можно отредактировать объект текущей сущности.

В панели действий карточки в режиме редактирования всегда первой отображается кнопка Сохранить, позволяющая сохранить внесенные изменения.

Перед сохранением данных карточки объекта убедитесь, что все необходимые поля заполнены.

Блок контента полноэкранной карточки

Ссылка на блок контента размещается в поле block интерфейса полноэкранной карточки. Блок контента может содержать набор виджетов или несколько вкладок с наборами виджетов.

Элемент Как задается в схеме домена

Заголовок

Поле label.

Набор виджетов в блоке контента

В поле groups нужно выбрать тип block.

Панель вкладок в блоке контента

Массив ссылок на вкладки в интерфейсе объекта.

  • Каждая вкладка содержит как минимум одну ссылку на блок с набором виджетов.

  • Все блоки для вкладок нужно описать в поле groups с помощью типа block.

  • Вкладку нужно описать в поле groups с помощью типа tab. В описании размещаются ссылки на блоки с набором виджетов.

Отображаемая вкладка или блок виджетов

Ссылка на вкладку в интерфейсе объекта, размещенная первой в массиве ссылок, или ссылка на блок с набором виджетов атрибутов.

  • Вкладка описывается в поле groups c помощью типа tab.

  • Набор виджетов в составе вкладки описывается в поле groups с помощью типа block.

Панель вкладок полноэкранной карточки

Ссылки на вкладки панели размещаются как записи массива в поле tabs интерфейса полноэкранной карточки. Каждая вкладка содержит по крайней мере один блок контента.

Элемент Как задается в схеме домена

Заголовок

Поле label.

Вкладка в панели вкладок

Описывается как ссылка на вкладку в массиве ссылок на вкладки в интерфейсе объекта. Каждая вкладка содержит как минимум одну ссылку на блок контента.

Отображаемая вкладка или блок виджетов

Описывается как ссылка на вкладку панели, размещенная первой в поле tabs. Вкладка описывается в поле groups с помощью типа tab.

Отображение в блоке контента двух секций регулируемой ширины

В блоке контента можно отображать две секции, каждая из которых представляет собой блок с виджетами. Для этого:

  1. Опишите блок с двумя секциями:

    1. Укажите в поле groups интерфейса объекта группу типа resizable_block_pair.

    2. Укажите в группе ссылки на блоки, отображаемые в секциях блока контента.

    3. Укажите параметры ширины секций.

  2. Сошлитесь на идентификатор блока с двумя секциями при описании блока контента.

Размеры секций блока в интерфейсе можно изменять, перетаскивая их границы курсором мыши.

Была ли полезна эта страница?

Обратная связь