diff --git a/README.md b/README.md index 58455d5..f57be8f 100644 --- a/README.md +++ b/README.md @@ -1 +1,113 @@ -# P8-Panels \ No newline at end of file +# P8-Panels + +# "Панели" расширение к "ПАРУС 8 Онлайн" + +## Термины и сокращения + +**Система** - "ПАРУС 8 Предприятие"\ +**БД** - База Данных\ +**СУБД** - Система Управления Базами Данных\ +**Расширение** - программный комплекс, дополняющий функциональность той или иной программной системы. В контексте данного документа (если не указано иное) - описываемое расширение "Панели".\ +**Фреймворк** - программная платформа, определяющая структуру программной системы, программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта. В контексте данного документа (если не указано иное) - описываемое расширение "Панели".\ +**Панель** - представление данных и функций Системы, реализованное с применением описываемого фреймворка\ +**SPA** - Single Page Application - технология разработки WEB-приложений, предполагающая динамическую генерацию интерфейса внутри одного HTML-документа, отображаемого браузером\ +**HTML** - HyperText Markup Language — язык гипертекстовой разметки\ +**CSS** - Cascading Style Sheets - каскадные таблицы стилей\ +**DOM** - Document Object Model - объектная модель документа (в контексте данного документа - HTML)\ +**JS** - JavaScript — мультипарадигменный интерпретируемый язык программирования\ +**JSX** - JavaScript eXtension - расширение JavaScript, которое позволяет создавать деревья DOM с использованием синтаксиса, подобного XML + +## Назначение + +Расширение представляет собой фреймворк, основной задачей которого является сокращение времени разработки нестандартных графических интерфейсов и панелей мониторинга, работающих в составе WEB-приложения "ПАРУС 8 Онлайн". + +## Состав + +В расширение входят: + +- Библиотека расширения "P8-Panels-ParusOnlineExt.dll" для сервера приложений "ПАРУС 8 Онлайн" - обеспечивает низкоуровневое взаимодействие разрабатываемых панелей с Системой +- Хранимые объекты сервера БД Системы, обеспечивающие обмен данными между панелями и учётными регистрами Системы +- API для высокоуровневого взаимодействия с сервером БД Системы +- API для взаимодействия разрабатываемых панелей с WEB-приложением "ПАРУС 8 Онлайн" +- WEB-приложение "Парус 8 - Панели мониторинга", являющееся "точкой входа" для подключения реализуемых панелей, включающее в себя: + - Подключенные и настроенные библиотеки ["React"](https://react.dev/), ["React-Router"](https://reactrouter.com/), ["MUI"](https://mui.com/) + - Настроенный транспайлер ["Babel"](https://babeljs.io/) + - Настроенный сборщик WEB-приложений ["WebPack"](https://webpack.js.org/) + - Настроенный статический анализатор кода ["ESLint"]() + - Настройки среды разработки ["Visual Studio Code"](https://code.visualstudio.com/) + - Готовый контекст React-приложения + - Компоненты для отображения единого бокового меню подключенных панелей, галереи подключенных панелей, интеграции в рабочий стол WEB-приложения "ПАРУС 8 Онлайн" + - Готовые панели мониторинга для ряда прикланых приложений Системы + +## Требования к разработчику + +Для успешной разработки собственных панелей, с применением описываемого фреймворка потребуются знания следующих технологий: + +- HTML, CSS, JS, JSX +- Разработка SPA WEB-приложений +- Знакомство с основами работы перечисленных выше библиотек и системных средств (в первую очередь "React") +- Знание архитектуры Системы, принципов работы и организации её серверной части + +## Установка + +1. Установите сервер приложений "ПАРУС 8 Онлайн" согласно документации (см. "Парус-Онлайн 2. Часть 1. Установка ГГГГ.ММ.docx"). +2. Разместите на диске сервера приложений библиотеку расширения "P8-Panels-ParusOnlineExt", для этого скопируйте содержимое папки "bin" из [репозитория расширения "P8-Panels-ParusOnlineExt"](https://github.com/CITKParus/P8-Panels-ParusOnlineExt), например, в каталог "C:\p8web20\Ext\P8-Panels-ParusOnlineExt". +3. Подключите библиотеку расширения к серверу приложений "ПАРУС 8 Онлайн". Для этого добавьте ссылку на библиотеку в файл "Config\extensions.config" сервера приложений: + +``` + + + + + + +``` + +Где: + +- `rootPath="c:\p8web20\Ext\"` - атрибут, указывающий на корневой каталог хранения расширений для сервера приложений "ПАРУС 8 Онлайн"\ +- `path="P8-Panels-ParusOnlineExt\bin\P8-Panels-ParusOnlineExt.dll"` - атрибут, указывающий на каталог размещения библиотеки расширения "Панели" относительного коревого `rootPath`.\ + +Затем, установите в файле конфигурации "PrecompiledApp.config" сервера приложений атрибут `updatable` в `true`: + +``` + +``` + +4. Разместите WEB-приложение "Парус 8 - Панели мониторинга" на сервере приложений "ПАРУС 8 Онлайн". Для этого в каталоге "Modules" сервера приложений создайте подкаталог "P8-Panels" и проведите клонирование репозитория ["P8-Panels"](https://github.com/CITKParus/P8-Panels) в него: + +``` +git clone https://github.com/CITKParus/P8-Panels.git +``` + +5. Проведите компиляцию хранимых объектов БД из каталога "db" клонированного репозитория (компиляцию проводить под пользователем-владельцем схемы серверной части Системы, с последующей перекомпиляцией зависимых инвалидных объектов), затем исполните скрипт "grants.sql", размещённый в этом же каталоге. + +6. Перезапустите сервер приложений "ПАРУС 8 Онлайн" + +## Подключение поставляемых панелей мониторинга + +## Разработка пользовательских панелей + +### Общие сведения + +### API для взаимодействия с сервером "ПАРУС 8 Предприятие" + +### Компоненты пользовательского интерфейса + +#### Типовые интерфейсные примитивы + +##### Компоненты MUI + +##### Сообщения "P8PAppMessage", "P8PAppInlineMessage" + +##### Индикатор загрузки "P8PAppProgress" + +#### Высокоуровневые компоненты + +##### Таблица данных "P8PDataGrid" + +##### Графики "P8PChart" + +##### Диаграмма ганта "P8PGantt" + +### API для взаимодействия с WEB-приложением "ПАРУС 8 Онлайн"