Перейти к содержанию

Unit (блок, юнит) - сущность, представляющая собой единицу деления клиента на асинхронно подгружаемые части (т.н. чанки, от англ. chunk - "кусок", "ломоть").

Содержимое юнитов описывается в виде списка входящих в него форм. При начальной загрузке клиента загружаются только те юниты, которые необходимы для отображения стартовой формы или, если произошёл переход по ссылке на конкретную форму - этой формы. Прочие юниты загружаются при первом обращении к ним (в общем случае это открытие формы по какому-либо маршруту).

Содержимое меню документов также строится на основе файла описания юнитов.

Описание юнитов#

Файлом описания юнитов (и, как следствие, точек разделения клиента) является файл units.json, по умолчанию расположенный в корне каталога source прикладного проекта. Файл должен представлять собой массив объектов, каждый из которых является описанием юнита. Объект юнита должен содержать следующие свойства:

  • name - уникальное имя юнита
  • caption - текст заголовка, под которым данный юнит будет фигурировать в интерфейсе навигации
  • roles - массив ролей, обладатели которых будут иметь доступ к данному юниту. Если не задан, то юнит будет доступен всем пользователям
  • expanded - флаг, отвечающая за раскрытие группы при создании меню документов. По умолчанию значение false (В случае, если нужно отрывать группу, находящуюся в другой группе, то данный флаг нужно указать и у родительской группы. Если у одной из дочерних групп указать true, а у корневой false, то дочерняя группа будет закрытой)
  • views - массив объектов, каждый из которых является описанием представления ("остановки" маршрута view), либо описанием юнита (позволяет создать древовидную структуру). Объект представления должен содержать следующие свойства:
    • key - ключ представления
    • caption - текст заголовка, под которым данное представление будет фигурировать в интерфейсе навигации. Если не задан, то представление не будет отображаться в меню документов
    • creation - флаг, отвечающий за отображение иконки для создания документа из меню. Учитывается только для форм-наследников класса Registry. По умолчанию значение false
    • form - класс формы, связанной с данным представлением
      • если модуль, содержащий класс, экспортирует его по умолчанию (export default class MyForm), то в качестве значения свойства form достаточно передать путь к модулю (например, "form": "./forms/myForm")
      • если модуль, содержащий класс, экспортирует его не по умолчанию (export class TestForm), то значением свойства form должен быть массив с двумя элементами: имя экспорта и путь к модулю (например, "form": ["TestForm", "./forms/testForm"])
      • если класс импортируется из библиотеки, то, в большинстве случаев, он экспортируется под каким-то конкретным именем, и должен быть импортирован с помощью второго варианта (например, "form": ["SearchForm", "ecosoft-lexema8-app-lib"])