НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.2 >> [I128-2258] Новый редактор записей ИРБИС (he3)📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.2 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: ИРБИС 128. Модуль he3 - Табличная форма ввода данных, Комплексное решение АБИС ИРБИС64/128
Завершено: 08.06.2026 12:48
Модуль he3 - Современный Web-редактор записей ИРБИС64 (на базе технологии WS)
ИДЕОЛОГИЯ И АРХИТЕКТУРНЫЕ ЦЕЛИ:
Чистое API и разделение слоев (Separation of Concerns): - Бэкенд (PHP) не генерирует JS-код или HTML (отказ от паттернов he2). - Модуль работает как API: отдает строгий JSON (UI Schema и данные записи) и принимает JSON для сохранения. - Фронтенд (ExtJS 3) читает схему и динамически строит интерфейс на клиенте.
Единый источник истины (Single Source of Truth) - рабочие листы: - Полный отказ от дублирующей системы FieldTypes (.field файлов). - Все формы ввода строятся исключительно на основе файлов конфигурации ИРБИС (.ws / .wss). - Специфичный Web-функционал (WYSIWYG, File Upload) реализуется через выделение пула пользовательских InMode (зарезервирован диапазон 128000-128999). Это сохраняет 100% совместимость с десктопным АРМ Каталогизатор, который игнорирует неизвестные методы ввода.
Плоский (табличный) интерфейс ИРБИС: - Замена перегруженного древовидного редактора со "спойлерами" на классический вид. - Общая компоновка (Border Layout): Сверху (North) — панель инструментов (сохранение, ФЛК, добавление полей). По центру (Center) — рабочая область, разделенная на вкладки согласно конфигурации WS. На каждой вкладке располагается своя плоская таблица (грид) с полями записи. * Снизу (South) — панель предпросмотра редактируемой записи с выбором формата просмотра. - Гибкая механика редактирования (по Enter или двойному клику): в зависимости от настроек может открываться вспомогательный инструмент (например, модальное окно редактора подполей по WSS) либо предоставляться возможность прямого inline-редактирования склеенной строки поля. - Автоматическая синхронизация повторений полей между вкладками и умная разбивка многострочного текста (textarea) на повторяющиеся поля на лету.
Строгая структура директорий модуля:
- classes/ - вспомогательные PHPклассы (парсеры, DTO, бизнеслогика).
- JS/ - JS-компоненты фронтенда (ExtJS).
- Actions/ - классы обработки API-запросов (endpoints).
Агностичность UIсхемы (FrameworkAgnostic):
- Генерируемый JSON Schema не должен содержать привязок к ExtJS (никаких xtype или layout).
- Только семантическое описание: тип данных, правила валидации, семантика виджета (например, "dictionary", "file").
Безопасность данных и UX: - Оптимистичные блокировки (Optimistic Locking) для предотвращения затирания данных при параллельном редактировании. - Поддержка восстановления из LocalStorage при обрыве связи (Автосохранение). - Локальная история изменений (Стек состояний Undo/Redo) для безопасной отмены (Ctrl+Z) и повтора (Ctrl+Y) пользовательских действий с автоматической синхронизацией черновика.
Производительность (Lazy Loading): - Ленивая подгрузка больших справочников (.mnu, .tre) и связанных записей только по мере необходимости (поиск/скроллинг).
Двухуровневая валидация (ФЛК): - Правила из WS валидируются на лету в браузере (клиент) и строго проверяются в API при сохранении (сервер).
Принцип единой ответственности (SRP) и делегирование: - Модуль he3 выступает только оркестратором. Вся низкоуровневая работа со специфичными структурами данных делегируется профильным модулям (парсинг .ws -> в модуль WS, чтение .tre -> в модуль Tre и т.д.).
Строгая типизация (DTO) и унифицированный контракт API: - Отказ от неструктурированных массивов. Внутренний обмен данными использует типизированные DTO. - Все API-ответы оборачиваются в единый конверт (например, {success: bool, data: mixed, message: string}). - Централизованный перехват исключений (Exception Handling) на уровне Actions.
Серверные черновики (Drafts) и отсутствие сессионного состояния:
- Сервер не хранит промежуточное состояние формы в оперативной памяти (сессиях PHP).
- При начале редактирования создается временная копия записи (Черновик) в выделенной БД (например, DRAFTS).
- Клиент взаимодействует с API, передавая ID черновика (DraftID) и изменения (дельты).
- Это обеспечивает надежное автосохранение, защиту от потери данных при обрыве связи и решает
проблему передачи тяжеловесных бинарных полей при каждом запросе предпросмотра/ФЛК.
- Бизнеслогика преобразования (WS -> UI Schema) должна быть изолирована и покрыта Unitтестами.
Непрерывная документация (DocsasCode):
- Документация является неотъемлемой частью кодовой базы (папка Help).
- Обязательный минимум:
Root.help - структура и оглавление.
General.md - общее описание модуля и архитектуры.
UserGuide.md - руководство пользователя (в т.ч. навигация с клавиатуры).
AdminGuide.md - справочник администратора (расширенные InMode, настройка WSS, структура DopInf).
UX профессионального ввода (Keyboard-First): - Обеспечение высокой скорости работы библиографа за счет полной поддержки навигации с клавиатуры (Tab, Enter, стрелки) по гридам и модальным окнам. - Поддержка привычных горячих клавиш (F2 - средства ввода, и т.д.).
Расширяемость (Plugin Architecture): - Модуль he3 должен предоставлять API для регистрации сторонних виджетов. Другие модули системы должны иметь возможность добавлять свои обработчики пользовательских InMode без изменения кода ядра he3.
Локализация (i18n): - Все системные сообщения, тексты ошибок валидации и элементы интерфейса должны использовать механизмы интернационализации ИРБИС 128. (Внимание: в текущей реализации требуется вынос захардкоженных строк в языковые файлы системы).
Синхронизация состояния и предпросмотр: - Фронтенд использует единое хранилище состояния (Store) для редактируемой записи. - Изменения в Store синхронизируются с серверным черновиком в фоне (Debounce-сохранение). - Эндпоинты предпросмотра и проверки ФЛК оперируют исключительно серверным черновиком. Фронтенд просто отправляет команду "Отформатируй черновик DraftID", минимизируя сетевой трафик.
-
feat(he3): добавлен модуль he3 — современный Web-редактор записей ИРБИС64
Начата реализация нового модуля he3, представляющий собой современный табличный (плоский) редактор записей, построенный на базе API-first подхода и строгой привязки к конфигурациям рабочих листов (.ws / .wss).
Основные нововведения и архитектурные решения:
Интеграция нового редактора he3 в модуль Каталогизатор
Добавление настройки формата предпросмотра, кнопки печати и улучшение рендеринга записей в редакторе he3
Настройки и интерфейс АРМ Каталогизатор:
Редактор he3 (Frontend):
Редактор he3 (Backend):
[I128-31] Поддержка листа ввода в виде таблицы
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-46] Поддержка метода ввода 7
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-47] Поддержка метода ввода 9
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-48] Поддержка метода ввода 10
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-49] Поддержка метода ввода 11
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-50] Поддержка метода ввода 12
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-52] Поддержка метода ввода 15
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-104] Возможность отмечать поля в редакторе и производить с ними групповые действия
Статус: Открытая задача | Автор: Ilya Mikhaylenko
[I128-2395] Новый редактор записей ИРБИС (he3)
Статус: Открытая задача | Автор: Ilya Mikhaylenko