Модуль he3: общее описание


НАЧАЛО >> he3 - редактор записей >> Модуль he3: общее описание📄 Скачать в DOCX


he3 предназначен для редактирования записей ИРБИС64 в табличном интерфейсе. Модуль получает структуру формы из рабочего листа .ws, создает серверный черновик записи, строит вкладки и таблицы на клиенте, а при сохранении переносит данные черновика в базу.

1. Основные принципы

  1. Рабочий лист является основой формы. Вкладки редактора соответствуют разделам .ws, поля берутся из строк рабочего листа, а вложенные подполя - из .wss, указанного в DopInf.
  2. Интерфейс плоский и табличный. Пользователь видит строки полей с колонками «Поле», «Повт.» и «Значение», а не дерево раскрываемых узлов.
  3. Изменения сначала попадают в серверный черновик. Черновик хранится в базе he3_drafts, имеет версию и обновляется в фоне.
  4. Предпросмотр и ФЛК работают по черновику. Пользователь может проверять запись до окончательного сохранения.
  5. Средства ввода выбираются по InMode. Один и тот же грид может открывать словарь, дерево, окно подполей, загрузку файла, тезаурус или обычное текстовое поле.
  6. Список дополнительных полей берется из default.ws. Это позволяет добавить поле, которого нет на текущем рабочем листе, но которое известно базе.

2. Внутренняя схема работы

  1. Пользователь открывает редактор из АРМ Каталогизатор или по ссылке модуля.
  2. Клиент запрашивает he3/GetSchema с именем базы и рабочего листа.
  3. Сервер читает .ws, при необходимости .wss, формирует JSON-схему и добавляет список defaultFields из default.ws.
  4. Клиент вызывает he3/InitDraft, получает draftId, затем читает запись через he3/GetDraft.
  5. Из схемы строятся вкладки и таблицы.
  6. Каждое изменение обновляет локальное состояние, попадает в историю Undo/Redo и через debounce отправляется в he3/UpdateDraft.
  7. Кнопка ФЛК вызывает he3/ValidateDraft.
  8. Предпросмотр вызывает he3/PreviewDraft.
  9. Кнопка «Сохранить» вызывает he3/CommitDraft.

3. Что важно учитывать

he3 уже содержит рабочую основу редактора и набор виджетов. При этом часть архитектурных целей находится в состоянии задела. Например, серверные черновики реализованы, а внешняя регистрация пользовательских виджетов имеет API, но готовых сторонних виджетов в поставке может не быть. Текущие ограничения перечислены в разделе: