Compare commits

..

4 Commits
main ... main

85 changed files with 1042 additions and 585 deletions

View File

@ -41,7 +41,7 @@
- API для высокоуровневого взаимодействия с сервером БД Системы - API для высокоуровневого взаимодействия с сервером БД Системы
- API для взаимодействия разрабатываемых панелей с WEB-приложением "ПАРУС 8 Онлайн" - API для взаимодействия разрабатываемых панелей с WEB-приложением "ПАРУС 8 Онлайн"
- WEB-приложение "Парус 8 - Панели мониторинга", являющееся "точкой входа" для подключения реализуемых панелей, включающее в себя: - WEB-приложение "Парус 8 - Панели мониторинга", являющееся "точкой входа" для подключения реализуемых панелей, включающее в себя:
- Подключенные и настроенные библиотеки ["React"](https://react.dev/), ["React-Router"](https://reactrouter.com/), ["MUI"](https://mui.com/) - Подключенные и настроенные библиотеки ["React"](https://react.dev/), ["React-Router"](https://reactrouter.com/), ["MUI5"](https://v5.mui.com/)
- Настроенный транспайлер ["Babel"](https://babeljs.io/) - Настроенный транспайлер ["Babel"](https://babeljs.io/)
- Настроенный сборщик WEB-приложений ["WebPack"](https://webpack.js.org/) - Настроенный сборщик WEB-приложений ["WebPack"](https://webpack.js.org/)
- Настроенный статический анализатор кода ["ESLint"]() - Настроенный статический анализатор кода ["ESLint"]()
@ -124,16 +124,11 @@ git clone https://git.citpb.ru/CITKParus/P8-Panels.git
> **Внимание:** при установке учитывайте следующее: > **Внимание:** при установке учитывайте следующее:
> >
> - **Для Linux/Unix** > - **Для Linux/Unix**
>
> - Чувствительность к регистру - обращайте внимание на регистр в именах каталогов и файлов операционной системы и регистр в котором упоминаете их в конфигурационных файлах, несовпадение приводит к неработоспособности настроек > - Чувствительность к регистру - обращайте внимание на регистр в именах каталогов и файлов операционной системы и регистр в котором упоминаете их в конфигурационных файлах, несовпадение приводит к неработоспособности настроек
> - Права доступа - файлы конфигурации и файлы дистрибутива фреймворка должны быть доступны процессу WEB-сервера > - Права доступа - файлы конфигурации и файлы дистрибутива фреймворка должны быть доступны процессу WEB-сервера
>
> - **Для Windows 7 и прочих устаревших версий Windows** > - **Для Windows 7 и прочих устаревших версий Windows**
>
> - Версия IIS, доступная для этих ОС, зачастую не имеет автоматической поддержки шрифтов в формате "WOFF2", применяемых фреймворком. Это может вызывать некорректное отображение панелей, иконок, некоторых элементов пользовательского интерфейса. Добавте в файл "web.config", сервера приложений "ПАРУС 8 Онлайн", строку для определения формата: `<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`. Путь для добавления данной настройки в файл "web.config": `configuration/system.webServer/staticContent/<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />` > - Версия IIS, доступная для этих ОС, зачастую не имеет автоматической поддержки шрифтов в формате "WOFF2", применяемых фреймворком. Это может вызывать некорректное отображение панелей, иконок, некоторых элементов пользовательского интерфейса. Добавте в файл "web.config", сервера приложений "ПАРУС 8 Онлайн", строку для определения формата: `<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`. Путь для добавления данной настройки в файл "web.config": `configuration/system.webServer/staticContent/<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />`
>
> - **Для всех** > - **Для всех**
>
> - Если после установки фреймворка, при открытии панелей появляется ошибка `Internal server error` (HTTP-статус ответа сервера - 500), и Вы уверены, что перепроверили всё описанное выше в интрукции и не нашли ошибок установки, то: остановите сервер приложений "ПАРУС 8 Онлайн", сделайте резервную копию его каталога "bin" и удалите каталог, затем скачайте "web.zip" из дистрибутива Вашего релиза "ПАРУС 8 Онлайн" и восстановите удалённый каталог "bin", распаковав его из архива. Затем - запустите сервер приложений "ПАРУС 8 Онлайн". > - Если после установки фреймворка, при открытии панелей появляется ошибка `Internal server error` (HTTP-статус ответа сервера - 500), и Вы уверены, что перепроверили всё описанное выше в интрукции и не нашли ошибок установки, то: остановите сервер приложений "ПАРУС 8 Онлайн", сделайте резервную копию его каталога "bin" и удалите каталог, затем скачайте "web.zip" из дистрибутива Вашего релиза "ПАРУС 8 Онлайн" и восстановите удалённый каталог "bin", распаковав его из архива. Затем - запустите сервер приложений "ПАРУС 8 Онлайн".
## V. Подключение панелей ## V. Подключение панелей
@ -196,12 +191,12 @@ git clone https://git.citpb.ru/CITKParus/P8-Panels.git
- `name` - обязательный, строка, указывается латиницей, определяет уникальное имя панели - `name` - обязательный, строка, указывается латиницей, определяет уникальное имя панели
- `group` - необязательный, строка, указывается кириллицей, определяет имя группы, в которую входит панель (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе) - `group` - необязательный, строка, указывается кириллицей, определяет имя группы, в которую входит панель (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе)
- `caption` - обязательный, строка, видимое наименование панели (применяется в галереи панелей, главном меню панелей, ссылках на рабочем столе, заголовках закладок) - `caption` - обязательный, строка, видимое наименование панели (применяется в галерее панелей, главном меню панелей, ссылках на рабочем столе, заголовках закладок)
- `desc` - необязательный, строка, - `desc` - необязательный, строка,
- `url` - обязательный, строка, указывается латиницей, относительй URL панели (по адресу `Panel.urlBase` + `Panel.Panels.url` сервер приложений "ПАРУС 8 Онлайн" будет выдавать HTML-страницу панели), для простоты навигации может повторять значение атрибута `path` - `url` - обязательный, строка, указывается латиницей, относительй URL панели (по адресу `Panel.urlBase` + `Panel.Panels.url` сервер приложений "ПАРУС 8 Онлайн" будет выдавать HTML-страницу панели), для простоты навигации может повторять значение атрибута `path`
- `path` - обязательный, строка, путь к исходному коду панели в структуре каталогов WEB-приложения "Парус 8 - Панели мониторинга" (панели должны размещаться в "app/panels", в данном атрибуте указыватся только имя каталога, созданного для панели в "app/panels") - `path` - обязательный, строка, путь к исходному коду панели в структуре каталогов WEB-приложения "Парус 8 - Панели мониторинга" (панели должны размещаться в "app/panels", в данном атрибуте указыватся только имя каталога, созданного для панели в "app/panels")
- `icon` - обязательный, строка, код иконки панели из символов шрифта [Google Material Icons](https://fonts.google.com/icons?icon.set=Material+Icons) (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе) - `icon` - обязательный, строка, код иконки панели из символов шрифта [Google Material Icons](https://fonts.google.com/icons?icon.set=Material+Icons) (применяется при формировании галереи панелей, главного меню панелей и ссылок на рабочем столе)
- `showInPanelsList` - обязательный, принимает значения "true" или "false", определяет отображение ссылки на панель в галереи панелей, главном меню панелей, виджете рабочего стола - `showInPanelsList` - обязательный, принимает значения "true" или "false", определяет отображение ссылки на панель в галерее панелей, главном меню панелей, виджете рабочего стола
- `preview` - полный путь и имя файла из каталога "img" WEB-приложения "Парус 8 - Панели мониторинга" (в каталог могут быть добавлены пользовательские изображения), служит в качестве изображения панели в галерее панелей - `preview` - полный путь и имя файла из каталога "img" WEB-приложения "Парус 8 - Панели мониторинга" (в каталог могут быть добавлены пользовательские изображения), служит в качестве изображения панели в галерее панелей
На рисунках ниже проиллюстрировано применение атрибутов элемента `Panel`. На рисунках ниже проиллюстрировано применение атрибутов элемента `Panel`.
@ -520,7 +515,7 @@ c:\inetpub\p8web20\WebClient\Modules\P8-Panels>npm run build
> **Обратите внимание:** Здесь и далее - описываемый API (как клиентский, так и серверный) не является финальным и может быть изменён с целью развития фреймворка. В этой связи, необходимо закладывать дополнительное время на обновления расширения "Панели", связанное с возможной необходимостью приведения разработанных самостоятельно интерфейсов (их клиентских и серверных частей) к доработанному API. > **Обратите внимание:** Здесь и далее - описываемый API (как клиентский, так и серверный) не является финальным и может быть изменён с целью развития фреймворка. В этой связи, необходимо закладывать дополнительное время на обновления расширения "Панели", связанное с возможной необходимостью приведения разработанных самостоятельно интерфейсов (их клиентских и серверных частей) к доработанному API.
Для исполнения хранимых процедур/функций БД Системы в составе расширения предусмотрен специальный API. Его подключение к компоненте панели осуществляется через контекст `BackEndСtx` ("app/context/backend.js"). Для исполнения хранимых процедур/функций БД Системы в составе расширения предусмотрен специальный API. Его подключение к компоненте панели осуществляется через контекст `BackEndCtx` ("app/context/backend.js").
В состав API входят: В состав API входят:
@ -622,7 +617,7 @@ c:\inetpub\p8web20\WebClient\Modules\P8-Panels>npm run build
``` ```
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
//Функциональный компонент панели (или её части) //Функциональный компонент панели (или её части)
const MyPanel = () => { const MyPanel = () => {
@ -630,7 +625,7 @@ const MyPanel = () => {
const [state, setState] = useState({ dataLoaded: false, data: [], filters: null, orders: null }); const [state, setState] = useState({ dataLoaded: false, data: [], filters: null, orders: null });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка данных проектов с сервера //Загрузка данных проектов с сервера
const loadProjects = async (agentName) => { const loadProjects = async (agentName) => {
@ -715,7 +710,7 @@ const MyPanel = () => {
### API для взаимодействия с WEB-приложением "ПАРУС 8 Онлайн" ### API для взаимодействия с WEB-приложением "ПАРУС 8 Онлайн"
Для взаимодействия панелей с пользовательским интерфейсом "ПАРУС 8 Онлайн" в составе расширения предусмотрен специальный API. Его подключение к компоненте панели осуществляется через контекст `ApplicationСtx` ("app/context/application.js"). Для взаимодействия панелей с пользовательским интерфейсом "ПАРУС 8 Онлайн" в составе расширения предусмотрен специальный API. Его подключение к компоненте панели осуществляется через контекст `ApplicationCtx` ("app/context/application.js").
В состав API входят: В состав API входят:
@ -858,7 +853,7 @@ const MyPanel = () => {
``` ```
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import { Typography, Button, Divider } from "@mui/material"; //Интерфейсные элементы import { Typography, Button, Divider } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//Стили //Стили
const STYLES = { const STYLES = {
@ -873,7 +868,7 @@ const P8Online = ({ title }) => {
const [agent, setAgent] = useState(""); const [agent, setAgent] = useState("");
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit, pOnlineShowTab, pOnlineShowDocument, pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowUnit, pOnlineShowTab, pOnlineShowDocument, pOnlineShowDictionary } = useContext(ApplicationCtx);
//Генерация содержимого //Генерация содержимого
return ( return (
@ -944,11 +939,11 @@ const P8Online = ({ title }) => {
##### Компоненты MUI ##### Компоненты MUI
В состав фреймворка включена библиотека [MUI](https://mui.com/) версии 5. При разработке панелей могут быть использованы интерфейсные компоненты и разметка, поставляемые с ней. В состав фреймворка включена библиотека [MUI](https://v5.mui.com/) версии 5 (далее - `MUI5`). При разработке панелей могут быть использованы интерфейсные компоненты и разметка, поставляемые с ней.
![Компоненты MUI](docs/img/61.png) ![Компоненты MUI](docs/img/61.png)
Сочетая компоненты библиотеки [MUI](https://mui.com/) и описанный выше API для взаимодействия с Системой можно реализовать пользовательский интерфейс любой сложности. Для подключения компонента к панели достаточно импортировать его из модуля `"@mui/material"`. Сочетая компоненты библиотеки [MUI5](https://v5.mui.com/) и описанный выше API для взаимодействия с Системой можно реализовать пользовательский интерфейс любой сложности. Для подключения компонента к панели достаточно импортировать его из модуля `"@mui/material"`.
![Пример использования MUI](docs/img/62.png) ![Пример использования MUI](docs/img/62.png)
@ -957,9 +952,9 @@ const P8Online = ({ title }) => {
``` ```
import React, { useEffect, useContext, useCallback, useState } from "react"; //Классы React import React, { useEffect, useContext, useCallback, useState } from "react"; //Классы React
import { Typography, Grid, List, ListItemButton, ListItem, ListItemText, IconButton, Icon, Button, TextField, Box } from "@mui/material"; //Интерфейсные элементы MUI import { Typography, Grid, List, ListItemButton, ListItem, ListItemText, IconButton, Icon, Button, TextField, Box } from "@mui/material"; //Интерфейсные элементы MUI
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//Стили //Стили
const STYLES = { const STYLES = {
@ -977,13 +972,13 @@ const Mui = ({ title }) => {
const [agentForm, setAgentForm] = useState({ agnAbbr: "", agnName: "" }); const [agentForm, setAgentForm] = useState({ agnAbbr: "", agnName: "" });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//Загрузка списка контрагентов //Загрузка списка контрагентов
const agentsGet = useCallback(async () => { const agentsGet = useCallback(async () => {
@ -1096,7 +1091,7 @@ const Mui = ({ title }) => {
``` ```
Более подробно ознакомиться с исходным кодом примера можно в "app/panels/samples/mui.js". Документация по интерфейсным компонентам, включённым в [MUI](https://mui.com/) доступна на официальном сайте библиотеки. Более подробно ознакомиться с исходным кодом примера можно в "app/panels/samples/mui.js". Документация по интерфейсным компонентам, включённым в [MUI5](https://v5.mui.com/) доступна на официальном сайте библиотеки.
> **Обратите внимание:** описываемые далее высокоуровневые компоненты фреймворка "Панели" построены, в том числе, с применением интерфейсных примитивов MUI. Как правило, они имеют префикс `P8P*` в имени: `P8PAppMessage`, `P8PAppInlineMessage`, `P8PAppProgress`, `P8PDataGrid` и т.д. > **Обратите внимание:** описываемые далее высокоуровневые компоненты фреймворка "Панели" построены, в том числе, с применением интерфейсных примитивов MUI. Как правило, они имеют префикс `P8P*` в имени: `P8PAppMessage`, `P8PAppInlineMessage`, `P8PAppProgress`, `P8PDataGrid` и т.д.
@ -1104,7 +1099,7 @@ const Mui = ({ title }) => {
При необходимости отображения сообщения пользователю панель может использовать компоненты `P8PAppMessage<TYPE>`, `P8PAppInlineMessage<TYPE>`, где `<TYPE> in ["Err", "Info", "Warn"]`, для сообщения об ошибке, информации или предупреждения соответственно. Их исходный код расположен в "app/components/p8p_app_message". Для подключения компонент к панели достаточно импортировать этот модуль. При необходимости отображения сообщения пользователю панель может использовать компоненты `P8PAppMessage<TYPE>`, `P8PAppInlineMessage<TYPE>`, где `<TYPE> in ["Err", "Info", "Warn"]`, для сообщения об ошибке, информации или предупреждения соответственно. Их исходный код расположен в "app/components/p8p_app_message". Для подключения компонент к панели достаточно импортировать этот модуль.
Для удобства применения компонент реализованы функции-обёртки и компоненты-обёртки (декораторы), доступные через специальный контекст приложения - `MessagingСtx` ("app/context/messaging"). Их описание дано ниже. Для удобства применения компонент реализованы функции-обёртки и компоненты-обёртки (декораторы), доступные через специальный контекст приложения - `MessagingCtx` ("app/context/messaging"). Их описание дано ниже.
![Примеры модальных сообщений](docs/img/63.png) ![Примеры модальных сообщений](docs/img/63.png)
@ -1190,7 +1185,7 @@ const Mui = ({ title }) => {
``` ```
import React, { useContext, useState } from "react"; //Классы React import React, { useContext, useState } from "react"; //Классы React
import { Typography, Divider, Button } from "@mui/material"; //Интерфейсные элементы import { Typography, Divider, Button } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
//Стили //Стили
const STYLES = { const STYLES = {
@ -1205,7 +1200,7 @@ const Messages = ({ title }) => {
const [state, setState] = useState({ inlineErr: true, inlineWarn: true, inlineInfo: true }); const [state, setState] = useState({ inlineErr: true, inlineWarn: true, inlineInfo: true });
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr, showMsgWarn, showMsgInfo, InlineMsgErr, InlineMsgInfo, InlineMsgWarn } = useContext(MessagingСtx); const { showMsgErr, showMsgWarn, showMsgInfo, InlineMsgErr, InlineMsgInfo, InlineMsgWarn } = useContext(MessagingCtx);
//Генерация содержимого //Генерация содержимого
return ( return (
@ -1278,7 +1273,7 @@ const Messages = ({ title }) => {
Для информирования пользователя о выполнении панелью асинхронных действий (например, обращений к серверу Системы), как правило, используются различные индикаторы выполнения процессов. Для этих целей в фреймворк "Панели" включен типовой индикатор процесса `P8PAppProgress` (исходный код компонента доступен в "app/components/p8p_app_progress"). Для информирования пользователя о выполнении панелью асинхронных действий (например, обращений к серверу Системы), как правило, используются различные индикаторы выполнения процессов. Для этих целей в фреймворк "Панели" включен типовой индикатор процесса `P8PAppProgress` (исходный код компонента доступен в "app/components/p8p_app_progress").
Для удобства использования компонента в контексте приложения `MessagingСtx` ("app/context/messaging") реализованы декораторы `showLoader` и `hideLoader` (отображение и сокрытие индикатора процесса соответственно). Для удобства использования компонента в контексте приложения `MessagingCtx` ("app/context/messaging") реализованы декораторы `showLoader` и `hideLoader` (отображение и сокрытие индикатора процесса соответственно).
![Пример индикатора процесса](docs/img/65.png) ![Пример индикатора процесса](docs/img/65.png)
@ -1305,7 +1300,7 @@ const Messages = ({ title }) => {
``` ```
import React, { useContext } from "react"; //Классы React import React, { useContext } from "react"; //Классы React
import { Typography, Button } from "@mui/material"; //Интерфейсные элементы import { Typography, Button } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
//Стили //Стили
const STYLES = { const STYLES = {
@ -1316,7 +1311,7 @@ const STYLES = {
//Функциональный компонент с примером использования индикатора процесса //Функциональный компонент с примером использования индикатора процесса
const Loader = ({ title }) => { const Loader = ({ title }) => {
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showLoader, hideLoader } = useContext(MessagingСtx); const { showLoader, hideLoader } = useContext(MessagingCtx);
//Генерация содержимого //Генерация содержимого
return ( return (
@ -1721,8 +1716,8 @@ import { Typography, Grid, Stack, Icon, Box, Button } from "@mui/material"; //И
import { object2Base64XML } from "../../core/utils"; //Вспомогательные процедуры и функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные процедуры и функции
import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//Размер страницы данных //Размер страницы данных
const DATA_GRID_PAGE_SIZE = 5; const DATA_GRID_PAGE_SIZE = 5;
@ -1793,10 +1788,10 @@ const DataGrid = ({ title }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//Загрузка данных таблицы с сервера //Загрузка данных таблицы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {
@ -2019,7 +2014,7 @@ import React, { useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Grid, Paper } from "@mui/material"; //Интерфейсные элементы import { Typography, Grid, Paper } from "@mui/material"; //Интерфейсные элементы
import { P8PChart, useP8PChart } from "../../components/p8p_chart"; //График import { P8PChart, useP8PChart } from "../../components/p8p_chart"; //График
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//--------- //---------
//Константы //Константы
@ -2043,7 +2038,7 @@ const Chart = ({ title }) => {
const { chart, isDataLoaded } = useP8PChart({ stored: "PKG_P8PANELS_SAMPLES.CHART" }); const { chart, isDataLoaded } = useP8PChart({ stored: "PKG_P8PANELS_SAMPLES.CHART" });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Отработка нажатия на график //Отработка нажатия на график
const handleChartClick = ({ item }) => { const handleChartClick = ({ item }) => {
@ -2269,7 +2264,7 @@ import { formatDateRF, hasValue } from "../../core/utils"; //Вспомогат
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы
import { P8PGantt, useP8PGantt } from "../../components/p8p_gantt"; //Диаграмма Ганта import { P8PGantt, useP8PGantt } from "../../components/p8p_gantt"; //Диаграмма Ганта
import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
//--------- //---------
//Константы //Константы
@ -2365,7 +2360,7 @@ const Gantt = ({ title }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Изменение данных диаграммы //Изменение данных диаграммы
const modifyData = useCallback( const modifyData = useCallback(
@ -2936,7 +2931,7 @@ import { formatDateJSONDateOnly, formatDateRF } from "../../core/utils"; //Вс
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы
import { P8PCyclogram } from "../../components/p8p_cyclogram"; //Циклограмма import { P8PCyclogram } from "../../components/p8p_cyclogram"; //Циклограмма
import { P8P_CYCLOGRAM_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_CYCLOGRAM_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
//--------- //---------
//Константы //Константы
@ -3022,7 +3017,7 @@ const Cyclogram = ({ title }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При подключении компонента к странице //При подключении компонента к странице
useEffect(() => { useEffect(() => {
@ -3166,8 +3161,8 @@ const MyPanel = () => {
Фреймворк позволяет реализовать любые пользовательские интерфейсы, вёрстка которых не противоречит возможностям современного HTML. Тем не менее, при разработке пользовательских интерфейсов панелей важно придерживаться предложенных ниже правил. Это позволит создавать их в едином ключе и упростит работу конечного пользователя при их освоении. Фреймворк позволяет реализовать любые пользовательские интерфейсы, вёрстка которых не противоречит возможностям современного HTML. Тем не менее, при разработке пользовательских интерфейсов панелей важно придерживаться предложенных ниже правил. Это позволит создавать их в едином ключе и упростит работу конечного пользователя при их освоении.
- Избегайте нестандартных реакций элементов пользовательского интерфейса на действия пользователя. Например, выпадающий список, при активации, должен отображать состав своих элементов, а не вызывать бизнес-функцию отработки документа. - Избегайте нестандартных реакций элементов пользовательского интерфейса на действия пользователя. Например, выпадающий список, при активации, должен отображать состав своих элементов, а не вызывать бизнес-функцию отработки документа.
- Избегайте прямого применения HTML-тэгов. В библиотеке [MUI](https://mui.com/), включенной в состав фреймворка, есть всё необходимое для сборки интерфейса. - Избегайте прямого применения HTML-тэгов. В библиотеке [MUI5](https://v5.mui.com/), включенной в состав фреймворка, есть всё необходимое для сборки интерфейса.
- Старайтесь не применять `<div>` для всёрстки - для этого в [MUI](https://mui.com/) есть группа компонентов разметки ("Layout"), используйте их (`Grid`, `Box`, `Container`, `Stack`, `Paper` и пр.). - Старайтесь не применять `<div>` для всёрстки - для этого в [MUI5](https://v5.mui.com/) есть группа компонентов разметки ("Layout"), используйте их (`Grid`, `Box`, `Container`, `Stack`, `Paper` и пр.).
- Старайтесь не использовать, без острой необходимости, атрибуты `sx` и `style` - всё необходимое для стилизации как правило есть в типовых атрибутах компонента [MUI](https://mui.com/), изучите его документацию. Если применение собственного стиля неизбежно - старайтесь выносить стили в единое место в коде, переиспользовать их, и импортировать там, где это необходимо. - Старайтесь не использовать, без острой необходимости, атрибуты `sx` и `style` - всё необходимое для стилизации как правило есть в типовых атрибутах компонента [MUI5](https://v5.mui.com/), изучите его документацию. Если применение собственного стиля неизбежно - старайтесь выносить стили в единое место в коде, переиспользовать их, и импортировать там, где это необходимо.
- Придерживайтесь единой цветовой гаммы при реализации всех панелей (в идеале) или, если не удаётся, панелей, отнесённых к одному прикладному участку (ПУДП, УЗСР, БУ, ПУП и т.п.). - Придерживайтесь единой цветовой гаммы при реализации всех панелей (в идеале) или, если не удаётся, панелей, отнесённых к одному прикладному участку (ПУДП, УЗСР, БУ, ПУП и т.п.).
- Изучите и применяйте `ThemeProvider` из состава инструментов стилизации библиотеки [MUI](https://mui.com/) для придания индивидуальности панелям и их компонентам. - Изучите и применяйте `ThemeProvider` из состава инструментов стилизации библиотеки [MUI5](https://v5.mui.com/) для придания индивидуальности панелям и их компонентам.

View File

@ -10,7 +10,7 @@
import React, { useState, useContext, useEffect } from "react"; //Классы React import React, { useState, useContext, useEffect } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { createHashRouter, RouterProvider, useRouteError } from "react-router-dom"; //Роутер import { createHashRouter, RouterProvider, useRouteError } from "react-router-dom"; //Роутер
import { ApplicationСtx } from "./context/application"; //Контекст приложения import { ApplicationCtx } from "./context/application"; //Контекст приложения
import { NavigationContext, NavigationCtx, getRootLocation } from "./context/navigation"; //Контекст навигации import { NavigationContext, NavigationCtx, getRootLocation } from "./context/navigation"; //Контекст навигации
import { P8PAppErrorPage } from "./components/p8p_app_error_page"; //Страница с ошибкой import { P8PAppErrorPage } from "./components/p8p_app_error_page"; //Страница с ошибкой
import { P8PAppWorkspace } from "./components/p8p_app_workspace"; //Рабочее пространство панели import { P8PAppWorkspace } from "./components/p8p_app_workspace"; //Рабочее пространство панели
@ -54,7 +54,7 @@ const MainMenu = ({ panels = [] } = {}) => {
const { navigatePanel, isNavigationSearch, getNavigationSearch } = useContext(NavigationCtx); const { navigatePanel, isNavigationSearch, getNavigationSearch } = useContext(NavigationCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { configUrlBase, pOnlineShowTab } = useContext(ApplicationСtx); const { configUrlBase, pOnlineShowTab } = useContext(ApplicationCtx);
//Получим параметры запроса из адресной строки //Получим параметры запроса из адресной строки
const qS = isNavigationSearch() ? getNavigationSearch() : null; const qS = isNavigationSearch() ? getNavigationSearch() : null;
@ -87,7 +87,7 @@ const Workspace = ({ panels = [], selectedPanel, children } = {}) => {
const { navigateRoot, navigatePanel } = useContext(NavigationCtx); const { navigateRoot, navigatePanel } = useContext(NavigationCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { appState } = useContext(ApplicationСtx); const { appState } = useContext(ApplicationCtx);
//Отработка действия навигации домой //Отработка действия навигации домой
const handleHomeNavigate = () => navigateRoot(); const handleHomeNavigate = () => navigateRoot();
@ -130,7 +130,7 @@ const App = () => {
const [routes, setRoutes] = useState([]); const [routes, setRoutes] = useState([]);
//Подключение к контексту приложения //Подключение к контексту приложения
const { appState } = useContext(ApplicationСtx); const { appState } = useContext(ApplicationCtx);
//Инициализация роутера //Инициализация роутера
const content = routes.length > 0 ? <RouterProvider router={createHashRouter(routes)}></RouterProvider> : null; const content = routes.length > 0 ? <RouterProvider router={createHashRouter(routes)}></RouterProvider> : null;

View File

@ -10,7 +10,7 @@
import React, { useContext } from "react"; //Классы React import React, { useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { TextField, Box, InputAdornment, IconButton, Icon, FormControlLabel, Checkbox } from "@mui/material"; //Интерфейсные элементы import { TextField, Box, InputAdornment, IconButton, Icon, FormControlLabel, Checkbox } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../../context/application"; //Контекст приложения
import { P8P_CA_OPEN_UNIT_PARAMS_SHAPE, P8P_CA_INPUT_PARAM_INITIAL, P8P_CA_DEF_TYPE_VALUE } from "./common"; //Общие ресурсы действий import { P8P_CA_OPEN_UNIT_PARAMS_SHAPE, P8P_CA_INPUT_PARAM_INITIAL, P8P_CA_DEF_TYPE_VALUE } from "./common"; //Общие ресурсы действий
import { P8PCAFieldWithType } from "./field_with_type"; //Поле с выбором типа значения import { P8PCAFieldWithType } from "./field_with_type"; //Поле с выбором типа значения
import { P8PCATablePropValues } from "./table_prop_values"; //Таблица значений свойств действия import { P8PCATablePropValues } from "./table_prop_values"; //Таблица значений свойств действия
@ -31,7 +31,7 @@ const STYLES = {
//Редактор действия "Открыть раздел" //Редактор действия "Открыть раздел"
const P8PCAUnitOpenOptions = ({ unit, valueTypes, isValues, onStateChange, onValueSourceMenuClick }) => { const P8PCAUnitOpenOptions = ({ unit, valueTypes, isValues, onStateChange, onValueSourceMenuClick }) => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//При изменении параметра открытия //При изменении параметра открытия
const handleModalChange = () => onStateChange({ modal: !unit.modal }); const handleModalChange = () => onStateChange({ modal: !unit.modal });

View File

@ -10,7 +10,7 @@
import React, { useState, useEffect, useContext } from "react"; //Классы React import React, { useState, useEffect, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Stack, IconButton, Icon, TextField, InputAdornment, MenuItem, Menu } from "@mui/material"; //Интерфейсные элементы import { Stack, IconButton, Icon, TextField, InputAdornment, MenuItem, Menu } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { TITLES, CAPTIONS } from "../../../app.text"; //Общие текстовые ресурсы import { TITLES, CAPTIONS } from "../../../app.text"; //Общие текстовые ресурсы
import { P8PConfigDialog } from "./p8p_config_dialog"; //Типовой диалог настройки import { P8PConfigDialog } from "./p8p_config_dialog"; //Типовой диалог настройки
import { P8P_DATA_SOURCE_TYPE, P8P_DATA_SOURCE_SHAPE, P8P_DATA_SOURCE_ARGUMENT_INITIAL, P8P_DATA_SOURCE_INITIAL } from "./p8p_data_source_common"; //Общие ресурсы компонента "Источник данных" import { P8P_DATA_SOURCE_TYPE, P8P_DATA_SOURCE_SHAPE, P8P_DATA_SOURCE_ARGUMENT_INITIAL, P8P_DATA_SOURCE_INITIAL } from "./p8p_data_source_common"; //Общие ресурсы компонента "Источник данных"
@ -43,7 +43,7 @@ const P8PDataSourceConfigDialog = ({ dataSource = null, valueProviders = {}, onO
const [disabledFields, setDisabledFields] = useState({ query: false, userProc: false }); const [disabledFields, setDisabledFields] = useState({ query: false, userProc: false });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//Установка значения/привязки аргумента //Установка значения/привязки аргумента
const setArgumentValueSource = (index, value, valueSource) => const setArgumentValueSource = (index, value, valueSource) =>

View File

@ -11,11 +11,11 @@ import { useState, useContext, useEffect, useRef } from "react"; //Классы
import client from "../../core/client"; //Клиент взаимодействия с сервером приложений import client from "../../core/client"; //Клиент взаимодействия с сервером приложений
import { ERRORS } from "../../../app.text"; //Общие текстовые ресурсы import { ERRORS } from "../../../app.text"; //Общие текстовые ресурсы
import { formatErrorMessage } from "../../core/utils"; //Общие вспомогательные функции import { formatErrorMessage } from "../../core/utils"; //Общие вспомогательные функции
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { P8P_DATA_SOURCE_TYPE, P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE } from "./p8p_data_source_common"; //Общие ресурсы источника данных import { P8P_DATA_SOURCE_TYPE, P8P_DATA_SOURCE_ARGUMENT_DATA_TYPE } from "./p8p_data_source_common"; //Общие ресурсы источника данных
import { getConditionsValues } from "./p8p_component_condition/util"; //Вспомогательные ресурсы условий import { getConditionsValues } from "./p8p_component_condition/util"; //Вспомогательные ресурсы условий
import { getHandlersByActions } from "./p8p_component_action/util"; //Вспомогательные ресурсы действий import { getHandlersByActions } from "./p8p_component_action/util"; //Вспомогательные ресурсы действий
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//----------- //-----------
//Тело модуля //Тело модуля
@ -30,7 +30,7 @@ const useUserProcDesc = ({ code, refresh }) => {
const [data, setData] = useState(null); const [data, setData] = useState(null);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости обновить данные компонента //При необходимости обновить данные компонента
useEffect(() => { useEffect(() => {
@ -84,7 +84,7 @@ const useDataSource = ({ dataSource, values, componentRespArg = "" }) => {
const [haveData, setHaveData] = useState(false); const [haveData, setHaveData] = useState(false);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости обновление информации о наличии данных //При необходимости обновление информации о наличии данных
useEffect(() => { useEffect(() => {
@ -204,7 +204,7 @@ const useComponentHandlers = ({ actions = [], onValuesChange = null, getCustomTy
const [handlers, setHandlers] = useState({}); const [handlers, setHandlers] = useState({});
//Подключение к контексту приложения //Подключение к контексту приложения
const { configUrlBase, pOnlineShowTab, pOnlineShowUnit } = useContext(ApplicationСtx); const { configUrlBase, pOnlineShowTab, pOnlineShowUnit } = useContext(ApplicationCtx);
//При необходимости обновления информации об обработчиках //При необходимости обновления информации об обработчиках
useEffect(() => { useEffect(() => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React
import { BackEndСtx } from "../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../context/backend"; //Контекст взаимодействия с сервером
//--------- //---------
//Константы //Константы
@ -61,7 +61,7 @@ const useP8PChart = ({
}, [allowDataLoad]); }, [allowDataLoad]);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, isRespErr } = useContext(BackEndСtx); const { executeStored, isRespErr } = useContext(BackEndCtx);
//Загрузка данных графика с сервера //Загрузка данных графика с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React
import { BackEndСtx } from "../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../context/backend"; //Контекст взаимодействия с сервером
import { formatDateJSONDateOnly } from "../core/utils"; //Вспомогательные функции import { formatDateJSONDateOnly } from "../core/utils"; //Вспомогательные функции
//--------- //---------
@ -65,7 +65,7 @@ const useP8PCyclogram = ({
}, [allowDataLoad]); }, [allowDataLoad]);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, isRespErr } = useContext(BackEndСtx); const { executeStored, isRespErr } = useContext(BackEndCtx);
//Загрузка данных циклограммы с сервера //Загрузка данных циклограммы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React
import { BackEndСtx } from "../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML } from "../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../core/utils"; //Вспомогательные функции
//--------- //---------
@ -78,7 +78,7 @@ const useP8PDataGrid = ({
}, [allowDataLoad]); }, [allowDataLoad]);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB, isRespErr } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB, isRespErr } = useContext(BackEndCtx);
//Загрузка данных таблицы с сервера //Загрузка данных таблицы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React
import { BackEndСtx } from "../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../context/backend"; //Контекст взаимодействия с сервером
import { formatDateJSONDateOnly } from "../core/utils"; //Вспомогательные функции import { formatDateJSONDateOnly } from "../core/utils"; //Вспомогательные функции
//--------- //---------
@ -66,7 +66,7 @@ const useP8PGantt = ({
}, [allowDataLoad]); }, [allowDataLoad]);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, isRespErr } = useContext(BackEndСtx); const { executeStored, isRespErr } = useContext(BackEndCtx);
//Загрузка данных диаграммы ганта с сервера //Загрузка данных диаграммы ганта с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React import { useState, useCallback, useEffect, useContext, useRef, useMemo } from "react"; //Классы React
import { BackEndСtx } from "../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../context/backend"; //Контекст взаимодействия с сервером
import { P8P_INDICATOR_STATE, P8P_INDICATOR_VARIANT } from "./p8p_indicator"; import { P8P_INDICATOR_STATE, P8P_INDICATOR_VARIANT } from "./p8p_indicator";
//--------- //---------
@ -68,7 +68,7 @@ const useP8PIndicator = ({
}, [allowDataLoad]); }, [allowDataLoad]);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, isRespErr } = useContext(BackEndСtx); const { executeStored, isRespErr } = useContext(BackEndCtx);
//Загрузка данных индикатора с сервера //Загрузка данных индикатора с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -10,8 +10,8 @@
import React, { useReducer, createContext, useEffect, useContext, useCallback, useMemo } from "react"; //ReactJS import React, { useReducer, createContext, useEffect, useContext, useCallback, useMemo } from "react"; //ReactJS
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { APP_AT, INITIAL_STATE, applicationReducer } from "./application_reducer"; //Редьюсер состояния import { APP_AT, INITIAL_STATE, applicationReducer } from "./application_reducer"; //Редьюсер состояния
import { MessagingСtx } from "./messaging"; //Контекст отображения сообщений import { MessagingCtx } from "./messaging"; //Контекст отображения сообщений
import { BackEndСtx } from "./backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "./backend"; //Контекст взаимодействия с сервером
//--------- //---------
//Константы //Константы
@ -31,7 +31,7 @@ const APPLICATION_CONTEXT_ERRORS_SHAPE = PropTypes.shape({
//---------------- //----------------
//Контекст приложения //Контекст приложения
export const ApplicationСtx = createContext(); export const ApplicationCtx = createContext();
//Провайдер контекста приложения //Провайдер контекста приложения
export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, config, children }) => { export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, config, children }) => {
@ -39,10 +39,10 @@ export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, c
const [state, dispatch] = useReducer(applicationReducer, INITIAL_STATE(displaySizeGetter)); const [state, dispatch] = useReducer(applicationReducer, INITIAL_STATE(displaySizeGetter));
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { getConfig, getRespPayload } = useContext(BackEndСtx); const { getConfig, getRespPayload } = useContext(BackEndCtx);
//Подключение к контексту отображения сообщений //Подключение к контексту отображения сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Установка флага инициализированности приложения //Установка флага инициализированности приложения
const setInitialized = () => dispatch({ type: APP_AT.SET_INITIALIZED }); const setInitialized = () => dispatch({ type: APP_AT.SET_INITIALIZED });
@ -170,7 +170,7 @@ export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, c
//Вернём компонент провайдера //Вернём компонент провайдера
return ( return (
<ApplicationСtx.Provider <ApplicationCtx.Provider
value={{ value={{
setAppBarTitle, setAppBarTitle,
findPanelByName, findPanelByName,
@ -186,7 +186,7 @@ export const ApplicationContext = ({ errors, displaySizeGetter, guidGenerator, c
}} }}
> >
{children} {children}
</ApplicationСtx.Provider> </ApplicationCtx.Provider>
); );
}; };

View File

@ -9,7 +9,7 @@
import React, { createContext, useContext, useCallback } from "react"; //ReactJS import React, { createContext, useContext, useCallback } from "react"; //ReactJS
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { MessagingСtx } from "./messaging"; //Контекст сообщений import { MessagingCtx } from "./messaging"; //Контекст сообщений
import { formatErrorMessage } from "../core/utils"; //Вспомогательные функции import { formatErrorMessage } from "../core/utils"; //Вспомогательные функции
//--------- //---------
@ -34,12 +34,12 @@ const BACKEND_CONTEXT_CLIENT_SHAPE = PropTypes.shape({
//---------------- //----------------
//Контекст взаимодействия с серверным API //Контекст взаимодействия с серверным API
export const BackEndСtx = createContext(); export const BackEndCtx = createContext();
//Провайдер контекста взаимодействия с серверным API //Провайдер контекста взаимодействия с серверным API
export const BackEndContext = ({ client, children }) => { export const BackEndContext = ({ client, children }) => {
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showLoader, hideLoader, showMsgErr } = useContext(MessagingСtx); const { showLoader, hideLoader, showMsgErr } = useContext(MessagingCtx);
//Проверка ответа на наличие ошибки //Проверка ответа на наличие ошибки
const isRespErr = useCallback(resp => client.isRespErr(resp), [client]); const isRespErr = useCallback(resp => client.isRespErr(resp), [client]);
@ -116,7 +116,7 @@ export const BackEndContext = ({ client, children }) => {
//Вернём компонент провайдера //Вернём компонент провайдера
return ( return (
<BackEndСtx.Provider <BackEndCtx.Provider
value={{ value={{
SERV_DATA_TYPE_STR: client.SERV_DATA_TYPE_STR, SERV_DATA_TYPE_STR: client.SERV_DATA_TYPE_STR,
SERV_DATA_TYPE_NUMB: client.SERV_DATA_TYPE_NUMB, SERV_DATA_TYPE_NUMB: client.SERV_DATA_TYPE_NUMB,
@ -130,7 +130,7 @@ export const BackEndContext = ({ client, children }) => {
}} }}
> >
{children} {children}
</BackEndСtx.Provider> </BackEndCtx.Provider>
); );
}; };

View File

@ -43,7 +43,7 @@ const MESSAGING_CONTEXT_BUTTONS_SHAPE = PropTypes.shape({
//---------------- //----------------
//Контекст сообщений //Контекст сообщений
export const MessagingСtx = createContext(); export const MessagingCtx = createContext();
//Провайдер контекста сообщений //Провайдер контекста сообщений
export const MessagingContext = ({ titles, texts, buttons, children }) => { export const MessagingContext = ({ titles, texts, buttons, children }) => {
@ -109,7 +109,7 @@ export const MessagingContext = ({ titles, texts, buttons, children }) => {
//Вернём компонент провайдера //Вернём компонент провайдера
return ( return (
<MessagingСtx.Provider <MessagingCtx.Provider
value={{ value={{
MSG_TYPE, MSG_TYPE,
showLoader, showLoader,
@ -146,7 +146,7 @@ export const MessagingContext = ({ titles, texts, buttons, children }) => {
/> />
) : null} ) : null}
{children} {children}
</MessagingСtx.Provider> </MessagingCtx.Provider>
); );
}; };

View File

@ -11,7 +11,7 @@ import React, { createContext, useContext } from "react"; //ReactJS
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { useLocation, useNavigate } from "react-router-dom"; //Роутер приложения import { useLocation, useNavigate } from "react-router-dom"; //Роутер приложения
import queryString from "query-string"; //Работа со строкой запроса import queryString from "query-string"; //Работа со строкой запроса
import { ApplicationСtx } from "./application"; //Контекст приложения import { ApplicationCtx } from "./application"; //Контекст приложения
//--------- //---------
//Константы //Константы
@ -41,7 +41,7 @@ export const NavigationContext = ({ children }) => {
const navigate = useNavigate(); const navigate = useNavigate();
//Подключение к контексту приложения //Подключение к контексту приложения
const { findPanelByName, setAppBarTitle } = useContext(ApplicationСtx); const { findPanelByName, setAppBarTitle } = useContext(ApplicationCtx);
//Проверка наличия параметров запроса //Проверка наличия параметров запроса
const isNavigationSearch = () => (location.search ? true : false); const isNavigationSearch = () => (location.search ? true : false);

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import React, { useState, useContext, useEffect, useCallback } from "react"; //Классы React import React, { useState, useContext, useEffect, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { import {
Dialog, Dialog,
@ -56,7 +56,7 @@ const FilterDialog = ({ initial, onFilterChange, onFilterClose, onDocLinksLoad }
const { handleCatalogTreeOpen, handleEventTypesOpen, handleAgnlistOpen, handleInsDepartmentOpen, handleCostStaffGroupsOpen } = useDictionary(); const { handleCatalogTreeOpen, handleEventTypesOpen, handleAgnlistOpen, handleInsDepartmentOpen, handleCostStaffGroupsOpen } = useDictionary();
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При изменении типа события фильтра //При изменении типа события фильтра
const handleTypeChange = callBack => const handleTypeChange = callBack =>

View File

@ -12,9 +12,9 @@ import PropTypes from "prop-types"; //Контроль свойств компо
import { Draggable } from "react-beautiful-dnd"; //Работа с drag&drop import { Draggable } from "react-beautiful-dnd"; //Работа с drag&drop
import { Card, CardHeader, Typography, IconButton, Icon, Box, Menu, MenuItem, CardContent, Avatar, Stack } from "@mui/material"; //Интерфейсные компоненты import { Card, CardHeader, Typography, IconButton, Icon, Box, Menu, MenuItem, CardContent, Avatar, Stack } from "@mui/material"; //Интерфейсные компоненты
import { TaskDialog } from "../task_dialog"; //Форма события import { TaskDialog } from "../task_dialog"; //Форма события
import { ApplicationСtx } from "../../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../../context/application"; //Контекст приложения
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../../context/messaging"; //Контекст сообщений
import { TASK_COLORS, getTaskExpiredColor, getTaskBgColorByRule, makeCardActionsArray } from "../layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { TASK_COLORS, getTaskExpiredColor, getTaskBgColorByRule, makeCardActionsArray } from "../layouts"; //Дополнительная разметка и вёрстка клиентских элементов
import { useDictionary } from "../hooks/dict_hooks"; //Состояние открытия разделов import { useDictionary } from "../hooks/dict_hooks"; //Состояние открытия разделов
import { useTasksFunctions } from "../hooks/tasks_hooks"; //Состояние вспомогательных функций событий import { useTasksFunctions } from "../hooks/tasks_hooks"; //Состояние вспомогательных функций событий
@ -141,13 +141,13 @@ const TaskCard = ({ task, index, onTasksReload, colorRule, pointSettings, onOpen
const { handleTaskStateChange, handleTaskSend } = useTasksFunctions(); const { handleTaskStateChange, handleTaskSend } = useTasksFunctions();
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//По нажатию на открытие меню действий //По нажатию на открытие меню действий
const handleMethodsMenuButtonClick = useCallback(event => { const handleMethodsMenuButtonClick = useCallback(event => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useContext, useCallback } from "react"; //Классы React import { useContext, useCallback } from "react"; //Классы React
import { ApplicationСtx } from "../../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../../context/application"; //Контекст приложения
//----------- //-----------
//Тело модуля //Тело модуля
@ -17,7 +17,7 @@ import { ApplicationСtx } from "../../../context/application"; //Контекс
//Состояние открытия разделов //Состояние открытия разделов
const useDictionary = () => { const useDictionary = () => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//Отображение раздела "Сотрудники" //Отображение раздела "Сотрудники"
const handleClientPersonOpen = useCallback( const handleClientPersonOpen = useCallback(

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect, useCallback } from "react"; //Классы React import { useState, useContext, useEffect, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import { getRandomColor, getLocalStorageValue } from "../layouts"; //Вспомогательные функции import { getRandomColor, getLocalStorageValue } from "../layouts"; //Вспомогательные функции
//----------- //-----------
@ -29,7 +29,7 @@ const useExtraData = filtersType => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Считывание учётных документов //Считывание учётных документов
const handleDocLinksLoad = useCallback( const handleDocLinksLoad = useCallback(
@ -99,7 +99,7 @@ const useColorRules = () => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости загрузки заливок //При необходимости загрузки заливок
useEffect(() => { useEffect(() => {
@ -165,7 +165,7 @@ const useStatuses = filterType => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости сортировки статусов //При необходимости сортировки статусов
useEffect(() => { useEffect(() => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect } from "react"; //Классы React import { useState, useContext, useEffect } from "react"; //Классы React
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
//----------- //-----------
//Тело модуля //Тело модуля
@ -48,7 +48,7 @@ const useClientEvent = (taskRn, taskType = "") => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При инициализации события //При инициализации события
useEffect(() => { useEffect(() => {
@ -161,7 +161,7 @@ const useDocsProps = taskType => {
const [docProps, setDocsProps] = useState({ loaded: false, props: [] }); const [docProps, setDocsProps] = useState({ loaded: false, props: [] });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
useEffect(() => { useEffect(() => {
//Загрузка доп. свойств //Загрузка доп. свойств

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect, useCallback } from "react"; //Классы React import { useState, useContext, useEffect, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML } from "../../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../../core/utils"; //Вспомогательные функции
import { convertFilterValuesToArray } from "../layouts"; //Вспомогательные функции import { convertFilterValuesToArray } from "../layouts"; //Вспомогательные функции
import { useDictionary } from "./dict_hooks"; //Состояние открытия разделов import { useDictionary } from "./dict_hooks"; //Состояние открытия разделов
@ -23,7 +23,7 @@ const useTasksFunctions = () => {
const { handleEventRoutesPointExecutersOpen, handleEventRoutesPointsPassessOpen } = useDictionary(); const { handleEventRoutesPointExecutersOpen, handleEventRoutesPointsPassessOpen } = useDictionary();
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Выполнение направления события //Выполнение направления события
const handleSendExec = useCallback( const handleSendExec = useCallback(
@ -310,7 +310,7 @@ const useTasks = (filterValues, ordersValues) => {
const { handleTaskStateChange } = useTasksFunctions(); const { handleTaskStateChange } = useTasksFunctions();
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Инициализация параметров события //Инициализация параметров события
const initTask = (id, task, avatar = null) => { const initTask = (id, task, avatar = null) => {

View File

@ -12,7 +12,7 @@ import PropTypes from "prop-types"; //Контроль свойств компо
import { useClientEvent } from "./hooks/task_dialog_hooks"; //Хук для события import { useClientEvent } from "./hooks/task_dialog_hooks"; //Хук для события
import { useDocsProps } from "./hooks/task_dialog_hooks"; //Хук для получения доп. свойств раздела "События" import { useDocsProps } from "./hooks/task_dialog_hooks"; //Хук для получения доп. свойств раздела "События"
import { TaskForm } from "./components/task_form"; //Форма события import { TaskForm } from "./components/task_form"; //Форма события
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
import { hasValue } from "../../core/utils"; //Вспомогательные процедуры и функции import { hasValue } from "../../core/utils"; //Вспомогательные процедуры и функции
import { P8PDialog } from "../../components/p8p_dialog"; //Типовой диалог import { P8PDialog } from "../../components/p8p_dialog"; //Типовой диалог
@ -37,7 +37,7 @@ const TaskDialog = ({ taskRn, taskType, editable, onTasksReload, onClose }) => {
const [docPropsReady, setDocPropsReady] = useState(false); const [docPropsReady, setDocPropsReady] = useState(false);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При изменении информации о задаче //При изменении информации о задаче
const handleTaskChange = useCallback( const handleTaskChange = useCallback(

View File

@ -11,9 +11,9 @@ import React, { useState, useContext, useCallback, useEffect } from "react"; //
import { Box } from "@mui/material"; //Интерфейсные компоненты import { Box } from "@mui/material"; //Интерфейсные компоненты
import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { headCellRender, dataCellRender, groupCellRender, DIGITS_REG_EXP, MONTH_NAME_REG_EXP, DAY_NAME_REG_EXP } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { headCellRender, dataCellRender, groupCellRender, DIGITS_REG_EXP, MONTH_NAME_REG_EXP, DAY_NAME_REG_EXP } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов
import { TEXTS } from "../../../app.text"; //Тектовые ресурсы и константы import { TEXTS } from "../../../app.text"; //Тектовые ресурсы и константы
import { Filter } from "./filter"; //Компонент фильтра import { Filter } from "./filter"; //Компонент фильтра
@ -88,13 +88,13 @@ const EqsPrfrm = () => {
const [refIsDeprecated, setRidFlag] = useState(true); const [refIsDeprecated, setRidFlag] = useState(true);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Загрузка данных таблицы с сервера //Загрузка данных таблицы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -11,7 +11,7 @@ import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Dialog, DialogTitle, IconButton, Icon, DialogContent, DialogActions, Button, Box, Grid } from "@mui/material"; //Интерфейсные компоненты import { Dialog, DialogTitle, IconButton, Icon, DialogContent, DialogActions, Button, Box, Grid } from "@mui/material"; //Интерфейсные компоненты
import { FilterInputField } from "./filter_input_field"; //Компонент поля ввода import { FilterInputField } from "./filter_input_field"; //Компонент поля ввода
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//--------- //---------
//Константы //Константы
@ -77,7 +77,7 @@ const FilterDialog = ({ initial, onCancel, onOk }) => {
const [filter, setFilter] = useState({ ...initial }); const [filter, setFilter] = useState({ ...initial });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//При закрытии диалога без изменения фильтра //При закрытии диалога без изменения фильтра
const handleCancel = () => (onCancel ? onCancel() : null); const handleCancel = () => (onCancel ? onCancel() : null);

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import React, { useState, useCallback, useEffect, useContext } from "react"; //Классы React import React, { useState, useCallback, useEffect, useContext } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
//--------- //---------
@ -50,7 +50,7 @@ const useMechRecAssemblyMon = () => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Инициализация каталогов планов //Инициализация каталогов планов
const initPlanCtlgs = useCallback(async () => { const initPlanCtlgs = useCallback(async () => {
@ -134,7 +134,7 @@ const useCostProductComposition = planSpec => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При подключении компонента к странице //При подключении компонента к странице
useEffect(() => { useEffect(() => {
@ -174,7 +174,7 @@ const useProductDetailsTable = (planSpec, product, orders, pageNumber, stored) =
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка данных при изменении зависимостей //Загрузка данных при изменении зависимостей
useEffect(() => { useEffect(() => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import React, { useState, useCallback, useEffect, useContext } from "react"; //Классы React import React, { useState, useCallback, useEffect, useContext } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { NavigationCtx } from "../../context/navigation"; //Контекст навигации import { NavigationCtx } from "../../context/navigation"; //Контекст навигации
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
@ -49,7 +49,7 @@ const useCostJobs = () => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту навигации //Подключение к контексту навигации
const { getNavigationSearch } = useContext(NavigationCtx); const { getNavigationSearch } = useContext(NavigationCtx);
@ -100,7 +100,7 @@ const useCostJobsSpecs = task => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Выдача задания //Выдача задания
const issueCostJobsSpecs = useCallback( const issueCostJobsSpecs = useCallback(
@ -192,7 +192,7 @@ const useEquipConfiguration = (task, fromAction) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Включение станка в строку сменного задания //Включение станка в строку сменного задания
const includeEquipConfiguration = useCallback( const includeEquipConfiguration = useCallback(

View File

@ -11,7 +11,7 @@ import React, { useContext, useState } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Drawer, Fab, Box, List, ListItemButton, ListItemText, Typography, TextField } from "@mui/material"; //Интерфейсные элементы import { Drawer, Fab, Box, List, ListItemButton, ListItemText, Typography, TextField } from "@mui/material"; //Интерфейсные элементы
import { APP_STYLES } from "../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../app.styles"; //Типовые стили
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { CostJobsSpecsDataGrid } from "./fcjobssp"; //Собственные хуки таблиц import { CostJobsSpecsDataGrid } from "./fcjobssp"; //Собственные хуки таблиц
import { useCostJobs, useFilteredFcjobs } from "./hooks"; //Вспомогательные хуки import { useCostJobs, useFilteredFcjobs } from "./hooks"; //Вспомогательные хуки
@ -97,7 +97,7 @@ const MechRecCostJobs = () => {
const filteredJobs = useFilteredFcjobs(state.jobList, filter); const filteredJobs = useFilteredFcjobs(state.jobList, filter);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { InlineMsgInfo } = useContext(MessagingСtx); const { InlineMsgInfo } = useContext(MessagingCtx);
//Выбор плана //Выбор плана
const selectJob = job => { const selectJob = job => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext } from "react"; //Классы React import { useState, useCallback, useEffect, useContext } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { NavigationCtx } from "../../context/navigation"; //Контекст навигации import { NavigationCtx } from "../../context/navigation"; //Контекст навигации
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
@ -39,7 +39,7 @@ const useCostJobs = () => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту навигации //Подключение к контексту навигации
const { getNavigationSearch } = useContext(NavigationCtx); const { getNavigationSearch } = useContext(NavigationCtx);
@ -89,7 +89,7 @@ const useCostJobsSpecs = task => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Выдача задания //Выдача задания
const issueCostJobsSpecs = useCallback( const issueCostJobsSpecs = useCallback(
@ -181,7 +181,7 @@ const useCostJobsWorkers = task => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Включение рабочего в строку сменного задания //Включение рабочего в строку сменного задания
const includeWorker = useCallback( const includeWorker = useCallback(

View File

@ -3,7 +3,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext } from "react"; import { useState, useCallback, useEffect, useContext } from "react";
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML, formatDateRF } from "../../../core/utils"; //Вспомогательные функции import { object2Base64XML, formatDateRF } from "../../../core/utils"; //Вспомогательные функции
//--------- //---------
@ -33,7 +33,7 @@ const useCostRouteLists = (task, taskType) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка данных таблицы с сервера //Загрузка данных таблицы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {
@ -104,7 +104,7 @@ const useIncomFromDeps = (task, taskType) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка данных таблицы с сервера //Загрузка данных таблицы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {
@ -157,7 +157,7 @@ const useGoodsParties = mainRowRN => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка данных таблицы с сервера //Загрузка данных таблицы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {
@ -208,7 +208,7 @@ const useCostDeliveryLists = mainRowRN => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка данных таблицы строк комплектации с сервера //Загрузка данных таблицы строк комплектации с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -39,8 +39,8 @@ import {
CardActions, CardActions,
Tooltip Tooltip
} from "@mui/material"; //Интерфейсные элементы } from "@mui/material"; //Интерфейсные элементы
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { NavigationCtx } from "../../context/navigation"; //Контекст навигации import { NavigationCtx } from "../../context/navigation"; //Контекст навигации
import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы
@ -384,16 +384,16 @@ const MechRecCostProdPlans = () => {
const filteredPlanCtgls = useFilteredPlanCtlgs(state.planCtlgs, filter); const filteredPlanCtgls = useFilteredPlanCtlgs(state.planCtlgs, filter);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { InlineMsgInfo } = useContext(MessagingСtx); const { InlineMsgInfo } = useContext(MessagingCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Подключение к контексту навигации //Подключение к контексту навигации
const { getNavigationSearch } = useContext(NavigationCtx); const { getNavigationSearch } = useContext(NavigationCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgInfo } = useContext(MessagingСtx); const { showMsgInfo } = useContext(MessagingCtx);
//Инициализация каталогов планов //Инициализация каталогов планов
const initPlanCtlgs = useCallback(async () => { const initPlanCtlgs = useCallback(async () => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useCallback, useEffect, useContext } from "react"; //Классы React import { useState, useCallback, useEffect, useContext } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции
//--------- //---------
@ -40,7 +40,7 @@ const useMechRecDeptCostJobs = (subdiv, fullDate, workHours) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {
@ -91,7 +91,7 @@ const useInsDepartment = fullDate => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {
@ -142,7 +142,7 @@ const useFilter = (currentMonth, currentYear) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Считываем количества рабочих дней //Считываем количества рабочих дней
const getWorkDays = useCallback( const getWorkDays = useCallback(

View File

@ -12,7 +12,7 @@ import PropTypes from "prop-types"; //Контроль свойств компо
import { Typography, Box, Paper, Dialog, DialogContent, DialogActions, Button, TextField, IconButton, Icon } from "@mui/material"; //Интерфейсные элементы import { Typography, Box, Paper, Dialog, DialogContent, DialogActions, Button, TextField, IconButton, Icon } from "@mui/material"; //Интерфейсные элементы
import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { CostRouteListsSpecsDataGrid } from "./fcroutlstsp"; //Состояние таблицы заказов маршрутных листов import { CostRouteListsSpecsDataGrid } from "./fcroutlstsp"; //Состояние таблицы заказов маршрутных листов
import { useCostRouteLists } from "./hooks.js"; //Хук состояния таблицы маршрутных листов import { useCostRouteLists } from "./hooks.js"; //Хук состояния таблицы маршрутных листов
@ -142,7 +142,7 @@ const CostRouteListsDataGrid = ({ task }) => {
const [costRouteLists, setCostRouteLists] = useCostRouteLists(task); const [costRouteLists, setCostRouteLists] = useCostRouteLists(task);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При изменении состояния сортировки //При изменении состояния сортировки
const handleOrderChanged = ({ orders }) => setCostRouteLists(pv => ({ ...pv, orders: [...orders], pageNumber: 1, reload: true })); const handleOrderChanged = ({ orders }) => setCostRouteLists(pv => ({ ...pv, orders: [...orders], pageNumber: 1, reload: true }));

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import React, { useState, useEffect, useContext, useCallback } from "react"; //Классы React import React, { useState, useEffect, useContext, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции
//--------- //---------
@ -46,7 +46,7 @@ const useDeptCostProdPlans = month => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При подключении компонента к странице //При подключении компонента к странице
useEffect(() => { useEffect(() => {
@ -98,7 +98,7 @@ const useDeptCostProdPlanInfo = plan => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости очистки данных о плане //При необходимости очистки данных о плане
const handleClear = useCallback( const handleClear = useCallback(
@ -187,7 +187,7 @@ const useCostRouteLists = task => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {
@ -244,7 +244,7 @@ const useCostRouteListsSpecs = mainRowRN => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {
@ -304,7 +304,7 @@ const useIncomFromDeps = task => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {

View File

@ -15,7 +15,7 @@ import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заго
import { useDeptCostProdPlans, useFilteredPlans, useDeptCostProdPlanInfo } from "./hooks"; //Вспомогательные хуки import { useDeptCostProdPlans, useFilteredPlans, useDeptCostProdPlanInfo } from "./hooks"; //Вспомогательные хуки
import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { IncomFromDepsDataGridDialog } from "./incomefromdeps"; //Диалог сдачи продукции import { IncomFromDepsDataGridDialog } from "./incomefromdeps"; //Диалог сдачи продукции
import { CostRouteListsDataGridDialog } from "./fcroutlst"; //Диалог маршрутных листов import { CostRouteListsDataGridDialog } from "./fcroutlst"; //Диалог маршрутных листов
@ -229,7 +229,7 @@ const MechRecDeptCostProdPlans = () => {
const filteredPlanCtgls = useFilteredPlans(plans.rows, filter); const filteredPlanCtgls = useFilteredPlans(plans.rows, filter);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { InlineMsgInfo } = useContext(MessagingСtx); const { InlineMsgInfo } = useContext(MessagingCtx);
//Выбор плана //Выбор плана
const selectPlan = plan => { const selectPlan = plan => {

View File

@ -11,7 +11,7 @@ import React, { useContext, useState } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Box, Grid, Typography, Link, List, ListItem, ListItemButton, ListItemText, Divider, Fab, Icon } from "@mui/material"; //Интерфейсные элементы import { Box, Grid, Typography, Link, List, ListItem, ListItemButton, ListItemText, Divider, Fab, Icon } from "@mui/material"; //Интерфейсные элементы
import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import img1_1 from "./img/1_1.png"; //Изображение import img1_1 from "./img/1_1.png"; //Изображение
import img1_2 from "./img/1_2.png"; //Изображение import img1_2 from "./img/1_2.png"; //Изображение
import img1_3 from "./img/1_3.png"; //Изображение import img1_3 from "./img/1_3.png"; //Изображение
@ -252,7 +252,7 @@ Img.propTypes = {
//Ссылка на раздел Системы //Ссылка на раздел Системы
const UnitLink = ({ unitCode, children }) => { const UnitLink = ({ unitCode, children }) => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Генерация содержимого //Генерация содержимого
return ( return (
@ -299,7 +299,7 @@ ChapterLink.propTypes = {
//Ссылка на информационную панель //Ссылка на информационную панель
const PanelLink = ({ panelName, children }) => { const PanelLink = ({ panelName, children }) => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { configUrlBase, findPanelByName, pOnlineShowTab } = useContext(ApplicationСtx); const { configUrlBase, findPanelByName, pOnlineShowTab } = useContext(ApplicationCtx);
//Генерация содержимого //Генерация содержимого
return ( return (

View File

@ -8,8 +8,8 @@
//--------------------- //---------------------
import { useState, useEffect, useContext, useCallback, useLayoutEffect } from "react"; //Классы React import { useState, useEffect, useContext, useCallback, useLayoutEffect } from "react"; //Классы React
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../../context/messaging"; //Контекст сообщений
import { object2Base64XML, genUID, xml2JSON } from "../../../core/utils"; //Вспомогательные функции import { object2Base64XML, genUID, xml2JSON } from "../../../core/utils"; //Вспомогательные функции
import { exportXMLFile } from "../layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { exportXMLFile } from "../layouts"; //Дополнительная разметка и вёрстка клиентских элементов
import { P8P_COMPONENT_SETTINGS_PATHS } from "../../../components/editors/p8p_component_settings"; //Дополнительные настройки источников import { P8P_COMPONENT_SETTINGS_PATHS } from "../../../components/editors/p8p_component_settings"; //Дополнительные настройки источников
@ -184,7 +184,7 @@ const usePanel = () => {
const [editMode, setEditMode] = useState(true); const [editMode, setEditMode] = useState(true);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости загрузки информации о панели //При необходимости загрузки информации о панели
const loadPanel = async panel => { const loadPanel = async panel => {
@ -244,7 +244,7 @@ const usePanelManager = () => {
const [data, setData] = useState(null); const [data, setData] = useState(null);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Добавление панели //Добавление панели
const insertPanel = useCallback( const insertPanel = useCallback(
@ -354,10 +354,10 @@ const usePanelDesc = panel => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Считывание базовой информации о панели //Считывание базовой информации о панели
const getPanelInfo = useCallback(async () => { const getPanelInfo = useCallback(async () => {

View File

@ -27,7 +27,7 @@ import {
InputAdornment, InputAdornment,
IconButton IconButton
} from "@mui/material"; //Интерфейсные элементы } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../../../context/application"; //Контекст приложения
import { P8PEditorBox } from "../../../../components/editors/p8p_editor_box"; //Контейнер редактора import { P8PEditorBox } from "../../../../components/editors/p8p_editor_box"; //Контейнер редактора
import { P8PEditorSubHeader } from "../../../../components/editors/p8p_editor_sub_header"; //Заголовок раздела редактора import { P8PEditorSubHeader } from "../../../../components/editors/p8p_editor_sub_header"; //Заголовок раздела редактора
import { P8PConfigDialog } from "../../../../components/editors/p8p_config_dialog"; //Диалог настройки import { P8PConfigDialog } from "../../../../components/editors/p8p_config_dialog"; //Диалог настройки
@ -57,7 +57,7 @@ const ItemEditor = ({ item = null, valueProviders = {}, onOk = null, onCancel =
const [valueProvidersMenuAnchorEl, setValueProvidersMenuAnchorEl] = useState(null); const [valueProvidersMenuAnchorEl, setValueProvidersMenuAnchorEl] = useState(null);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//При закрытии редактора с сохранением //При закрытии редактора с сохранением
const handleOk = () => onOk && onOk({ ...state }); const handleOk = () => onOk && onOk({ ...state });

View File

@ -10,7 +10,7 @@
import React, { useEffect, useState, useContext } from "react"; //Классы React import React, { useEffect, useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Paper, Stack, Typography, Icon, TextField, IconButton, InputAdornment } from "@mui/material"; //Интерфейсные элементы import { Paper, Stack, Typography, Icon, TextField, IconButton, InputAdornment } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../../../context/application"; //Контекст приложения
import { P8P_COMPONENT_INLINE_MESSAGE, P8PComponentInlineMessage } from "../../../../components/editors/p8p_component_inline_message"; //Информационное сообщение внутри компонента import { P8P_COMPONENT_INLINE_MESSAGE, P8PComponentInlineMessage } from "../../../../components/editors/p8p_component_inline_message"; //Информационное сообщение внутри компонента
import { ITEM_SHAPE, ITEMS_INITIAL, ORIENTATION } from "./common"; //Общие ресурсы и константы формы import { ITEM_SHAPE, ITEMS_INITIAL, ORIENTATION } from "./common"; //Общие ресурсы и константы формы
import { APP_STYLES } from "../../../../../app.styles"; import { APP_STYLES } from "../../../../../app.styles";
@ -37,7 +37,7 @@ const COMPONENT_NAME = "Форма";
//Элемент формы //Элемент формы
const FormItem = ({ item = null, fullWidth = false, value = "", onChange = null } = {}) => { const FormItem = ({ item = null, fullWidth = false, value = "", onChange = null } = {}) => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//При изменении значения элемента //При изменении значения элемента
const handleChange = e => onChange && onChange(e.target.id, e.target.value); const handleChange = e => onChange && onChange(e.target.id, e.target.value);

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Box, Button, Icon } from "@mui/material"; //Интерфейсные компоненты MUI import { Box, Button, Icon } from "@mui/material"; //Интерфейсные компоненты MUI
import { MessagingСtx } from "../../../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../../../context/messaging"; //Контекст сообщений
import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы приложения import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы приложения
import { P8PConfigDialog } from "../../../../components/editors/p8p_config_dialog"; //Типовой диалог настройки import { P8PConfigDialog } from "../../../../components/editors/p8p_config_dialog"; //Типовой диалог настройки
import { usePanelManager } from "../components_hooks"; //Пользовательские хуки import { usePanelManager } from "../components_hooks"; //Пользовательские хуки
@ -31,7 +31,7 @@ const PanelsManager = ({ current = null, isEditable = true, onPanelSelect = null
const [panels, insertPanel, updatePanel, deletePanel, setPanelReady, setPanelPbl, importPanel] = usePanelManager(); const [panels, insertPanel, updatePanel, deletePanel, setPanelReady, setPanelPbl, importPanel] = usePanelManager();
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//При добавлении панели //При добавлении панели
const handlePanelAdd = () => setModPanel(true); const handlePanelAdd = () => setModPanel(true);

View File

@ -11,7 +11,7 @@ import React, { useState, useContext, useEffect } from "react"; //Классы R
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Responsive, WidthProvider } from "react-grid-layout"; //Адаптивный макет import { Responsive, WidthProvider } from "react-grid-layout"; //Адаптивный макет
import { Box, Grid, Menu, MenuItem, Popover } from "@mui/material"; //Интерфейсные элементы import { Box, Grid, Menu, MenuItem, Popover } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Рабочая область приложения import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Рабочая область приложения
import { P8PEditorToolBar } from "../../components/editors/p8p_editor_toolbar"; //Панель инструментов редактора import { P8PEditorToolBar } from "../../components/editors/p8p_editor_toolbar"; //Панель инструментов редактора
import { LayoutItem } from "./layout_item"; //Элемент макета import { LayoutItem } from "./layout_item"; //Элемент макета
@ -89,7 +89,7 @@ const PanelEditor = ({
const [rowHeight] = useWindowResize(); const [rowHeight] = useWindowResize();
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//При перемещении макета //При перемещении макета
const handleOnDrag = layout => { const handleOnDrag = layout => {

View File

@ -14,7 +14,7 @@ import { P8PConfigDialog } from "../../components/editors/p8p_config_dialog"; //
import { isElementNameCorrect } from "../../components/editors/p8p_editors_common"; //Общие ресурсы редакторов import { isElementNameCorrect } from "../../components/editors/p8p_editors_common"; //Общие ресурсы редакторов
import { P8PEditorSubHeader } from "../../components/editors/p8p_editor_sub_header"; //Заголовок раздела редактора import { P8PEditorSubHeader } from "../../components/editors/p8p_editor_sub_header"; //Заголовок раздела редактора
import { P8PEditorBox } from "../../components/editors/p8p_editor_box"; //Контейнер редактора import { P8PEditorBox } from "../../components/editors/p8p_editor_box"; //Контейнер редактора
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { APP_STYLES } from "../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../app.styles"; //Типовые стили
import { STYLES as COMMON_STYLES } from "../../components/editors/p8p_editors_common"; //Общие ресурсы редакторов import { STYLES as COMMON_STYLES } from "../../components/editors/p8p_editors_common"; //Общие ресурсы редакторов
import { P8PChipList } from "../../components/editors/p8p_chip_list"; //Дополнительные настройки редактора import { P8PChipList } from "../../components/editors/p8p_chip_list"; //Дополнительные настройки редактора
@ -127,7 +127,7 @@ const PanelPropsEditor = ({ valueProviders = {}, onSettingsChange, onDependencyC
const [variableEditor, setVariableEditor] = useState({ display: false, item: null }); const [variableEditor, setVariableEditor] = useState({ display: false, item: null });
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//При добавлении новой переменной //При добавлении новой переменной
const handleVariableAdd = () => setVariableEditor({ display: true, item: null }); const handleVariableAdd = () => setVariableEditor({ display: true, item: null });

View File

@ -9,8 +9,8 @@
import React, { useState, useContext, useEffect } from "react"; //Классы React import React, { useState, useContext, useEffect } from "react"; //Классы React
import { Box, Icon, Fab } from "@mui/material"; //Интерфейсные элементы import { Box, Icon, Fab } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { PanelsManager } from "./components/panels_manager/panels_manager"; //Менеджер панелей import { PanelsManager } from "./components/panels_manager/panels_manager"; //Менеджер панелей
import { usePanel } from "./components/components_hooks"; //Вспомогательные хуки import { usePanel } from "./components/components_hooks"; //Вспомогательные хуки
import { NavigationCtx } from "../../context/navigation"; //Контекст навигации import { NavigationCtx } from "../../context/navigation"; //Контекст навигации
@ -57,9 +57,9 @@ const PanelsEditor = () => {
//Подключение к контексту навигации //Подключение к контексту навигации
const { getNavigationSearch } = useContext(NavigationCtx); const { getNavigationSearch } = useContext(NavigationCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { setAppBarTitle } = useContext(ApplicationСtx); const { setAppBarTitle } = useContext(ApplicationCtx);
//При выборе панели //При выборе панели
const handlePanelSelect = panel => { const handlePanelSelect = panel => {

View File

@ -21,9 +21,9 @@ import {
} from "../../components/p8p_data_grid"; //Таблица данных } from "../../components/p8p_data_grid"; //Таблица данных
import { P8PFullScreenDialog } from "../../components/p8p_fullscreen_dialog"; //Полноэкранный диалог import { P8PFullScreenDialog } from "../../components/p8p_fullscreen_dialog"; //Полноэкранный диалог
import { P8PChart, useP8PChart } from "../../components/p8p_chart"; //График import { P8PChart, useP8PChart } from "../../components/p8p_chart"; //График
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { COMMON_PROJECTS_STYLES, PANEL_UNITS, headCellRender, dataCellRender, valueFormatter, rowExpandRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { COMMON_PROJECTS_STYLES, PANEL_UNITS, headCellRender, dataCellRender, valueFormatter, rowExpandRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов
import { Stages } from "./stages"; //Список этапов проекта import { Stages } from "./stages"; //Список этапов проекта
@ -61,7 +61,7 @@ const Projects = () => {
const [stagesFilters, setStagesFilters] = useState([]); const [stagesFilters, setStagesFilters] = useState([]);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument, pOnlineShowUnit, configSystemPageSize } = useContext(ApplicationСtx); const { pOnlineShowDocument, pOnlineShowUnit, configSystemPageSize } = useContext(ApplicationCtx);
//Собственное состояние //Собственное состояние
const { const {
@ -83,10 +83,10 @@ const Projects = () => {
const { chart: costNotesChart, isDataLoaded: isCostNotesLoaded } = useP8PChart({ stored: "PKG_P8PANELS_PROJECTS.CHART_FCCOSTNOTES" }); const { chart: costNotesChart, isDataLoaded: isCostNotesLoaded } = useP8PChart({ stored: "PKG_P8PANELS_PROJECTS.CHART_FCCOSTNOTES" });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Отображение журнала платежей по этапу проекта //Отображение журнала платежей по этапу проекта
const showPayNotes = async ({ sender, direction }) => { const showPayNotes = async ({ sender, direction }) => {

View File

@ -20,9 +20,9 @@ import {
P8P_DATA_GRID_FILTERS_HEIGHT, P8P_DATA_GRID_FILTERS_HEIGHT,
useP8PDataGrid useP8PDataGrid
} from "../../components/p8p_data_grid"; //Таблица данных } from "../../components/p8p_data_grid"; //Таблица данных
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { PANEL_UNITS, dataCellRender, valueFormatter } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { PANEL_UNITS, dataCellRender, valueFormatter } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов
@ -56,13 +56,13 @@ const StageArts = ({ stage, filters }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Отображение журнала затрат по статье калькуляции //Отображение журнала затрат по статье калькуляции
const showCostNotes = async ({ sender }) => { const showCostNotes = async ({ sender }) => {

View File

@ -21,9 +21,9 @@ import {
P8P_DATA_GRID_FILTERS_HEIGHT, P8P_DATA_GRID_FILTERS_HEIGHT,
useP8PDataGrid useP8PDataGrid
} from "../../components/p8p_data_grid"; //Таблица данных } from "../../components/p8p_data_grid"; //Таблица данных
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { PANEL_UNITS, dataCellRender, valueFormatter, rowExpandRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { PANEL_UNITS, dataCellRender, valueFormatter, rowExpandRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов
@ -48,7 +48,7 @@ const STYLES = {
//Договоры с соисполнителями этапа проекта //Договоры с соисполнителями этапа проекта
const StageContracts = ({ stage, filters }) => { const StageContracts = ({ stage, filters }) => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument, pOnlineShowUnit, configSystemPageSize } = useContext(ApplicationСtx); const { pOnlineShowDocument, pOnlineShowUnit, configSystemPageSize } = useContext(ApplicationCtx);
//Собственное состояние //Собственное состояние
const { const {
@ -65,10 +65,10 @@ const StageContracts = ({ stage, filters }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Отображение выходящих счетов на оплату от соисполнителя этапа //Отображение выходящих счетов на оплату от соисполнителя этапа
const showPaymentAccountsIn = async ({ sender }) => { const showPaymentAccountsIn = async ({ sender }) => {

View File

@ -24,9 +24,9 @@ import {
import { P8PFullScreenDialog } from "../../components/p8p_fullscreen_dialog"; //Полноэкранный диалог import { P8PFullScreenDialog } from "../../components/p8p_fullscreen_dialog"; //Полноэкранный диалог
import { StageArts } from "./stage_arts"; //Калькуляция этапа проекта import { StageArts } from "./stage_arts"; //Калькуляция этапа проекта
import { StageContracts } from "./stage_contracts"; //Договоры с соисполнителями этапа проекта import { StageContracts } from "./stage_contracts"; //Договоры с соисполнителями этапа проекта
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { COMMON_PROJECTS_STYLES, PANEL_UNITS, headCellRender, dataCellRender, valueFormatter, rowExpandRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { COMMON_PROJECTS_STYLES, PANEL_UNITS, headCellRender, dataCellRender, valueFormatter, rowExpandRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов
@ -60,7 +60,7 @@ const Stages = ({ project, projectName, filters }) => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument, pOnlineShowUnit, configSystemPageSize } = useContext(ApplicationСtx); const { pOnlineShowDocument, pOnlineShowUnit, configSystemPageSize } = useContext(ApplicationCtx);
//Собственное состояние //Собственное состояние
const { const {
@ -77,10 +77,10 @@ const Stages = ({ project, projectName, filters }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Отображение журнала платежей по этапу проекта //Отображение журнала платежей по этапу проекта
const showPayNotes = async ({ sender, direction }) => { const showPayNotes = async ({ sender, direction }) => {

View File

@ -13,8 +13,8 @@ import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заго
import { APP_STYLES } from "../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../app.styles"; //Типовые стили
import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { dataCellRender, groupCellRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { dataCellRender, groupCellRender } from "./layouts"; //Дополнительная разметка и вёрстка клиентских элементов
//--------- //---------
@ -44,10 +44,10 @@ const PrjGraph = () => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Загрузка данных таблицы с сервера //Загрузка данных таблицы с сервера
const loadData = useCallback(async () => { const loadData = useCallback(async () => {

View File

@ -28,7 +28,7 @@ import {
Icon Icon
} from "@mui/material"; //Интерфейсные элементы } from "@mui/material"; //Интерфейсные элементы
import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import img21_1 from "./img/21_1.png"; //Изображение import img21_1 from "./img/21_1.png"; //Изображение
import img21_2 from "./img/21_2.png"; //Изображение import img21_2 from "./img/21_2.png"; //Изображение
import img21_3 from "./img/21_3.png"; //Изображение import img21_3 from "./img/21_3.png"; //Изображение
@ -171,7 +171,7 @@ Img.propTypes = {
//Ссылка на раздел Системы //Ссылка на раздел Системы
const UnitLink = ({ unitCode, children }) => { const UnitLink = ({ unitCode, children }) => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Генерация содержимого //Генерация содержимого
return ( return (
@ -218,7 +218,7 @@ ChapterLink.propTypes = {
//Ссылка на информационную панель //Ссылка на информационную панель
const PanelLink = ({ panelName, children }) => { const PanelLink = ({ panelName, children }) => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { configUrlBase, findPanelByName, pOnlineShowTab } = useContext(ApplicationСtx); const { configUrlBase, findPanelByName, pOnlineShowTab } = useContext(ApplicationCtx);
//Генерация содержимого //Генерация содержимого
return ( return (

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Button, Dialog, DialogTitle, DialogContent, DialogActions } from "@mui/material"; //Интерфейсные элементы import { Button, Dialog, DialogTitle, DialogContent, DialogActions } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { BUTTONS } from "../../../app.text"; //Типовые тексты import { BUTTONS } from "../../../app.text"; //Типовые тексты
import { APP_STYLES } from "../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../app.styles"; //Типовые стили
import { FormField } from "./layouts"; //Общие компоненты панели import { FormField } from "./layouts"; //Общие компоненты панели
@ -60,7 +60,7 @@ const FilterDialog = ({ valuesInitial, onOk, onCancel }) => {
const [values, setValues] = useState({ ...valuesInitial }); const [values, setValues] = useState({ ...valuesInitial });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//Изменение элемента формы фильтра //Изменение элемента формы фильтра
const handleValueChanged = (name, value) => setValues(pv => ({ ...pv, [name]: value })); const handleValueChanged = (name, value) => setValues(pv => ({ ...pv, [name]: value }));

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import { P8PDataGrid } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { useProjectsDataGrid } from "./projects_hooks"; //Хуки списка проектов import { useProjectsDataGrid } from "./projects_hooks"; //Хуки списка проектов
import { FILTER_INITIAL, Filter } from "./filter"; //Компонент "Фильтр" import { FILTER_INITIAL, Filter } from "./filter"; //Компонент "Фильтр"
import { PROJECTS_STYLES, projectDataCellRender, projectRowExpandRender } from "./projects_layouts"; //Дополнительная разметка и вёрстка клиентских элементов import { PROJECTS_STYLES, projectDataCellRender, projectRowExpandRender } from "./projects_layouts"; //Дополнительная разметка и вёрстка клиентских элементов
@ -28,7 +28,7 @@ const Projects = () => {
const [projectsDataGrid] = useProjectsDataGrid({ ...projects.filter, pageNumber: projects.pageNumber, orders: projects.orders }); const [projectsDataGrid] = useProjectsDataGrid({ ...projects.filter, pageNumber: projects.pageNumber, orders: projects.orders });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//Отображение записи проекта в штатном разделе //Отображение записи проекта в штатном разделе
const showProject = async rn => pOnlineShowDocument({ unitCode: "Projects", document: rn, modal: false }); const showProject = async rn => pOnlineShowDocument({ unitCode: "Projects", document: rn, modal: false });

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect } from "react"; //Классы React import { useState, useContext, useEffect } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции
import config from "../../../app.config"; //Настройки приложения import config from "../../../app.config"; //Настройки приложения
@ -32,7 +32,7 @@ const useProjectsDataGrid = ({ prjType, insDep, priceStructStatus, prjState, sea
const [data, setData] = useState({ init: false, morePages: true }); const [data, setData] = useState({ init: false, morePages: true });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {

View File

@ -10,9 +10,9 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Grid, Box, Typography, Paper, Drawer, IconButton, Icon } from "@mui/material"; //Интерфейсные элементы import { Grid, Box, Typography, Paper, Drawer, IconButton, Icon } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { TEXTS } from "../../../app.text"; //Тектовые ресурсы и константы import { TEXTS } from "../../../app.text"; //Тектовые ресурсы и константы
import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных
import { P8PChart } from "../../components/p8p_chart"; //График import { P8PChart } from "../../components/p8p_chart"; //График
@ -38,13 +38,13 @@ const StageDetailData = ({ stageRn }) => {
const [state, setState] = useState({ artsDisplayType: 0, artsChartType: 0 }); const [state, setState] = useState({ artsDisplayType: 0, artsChartType: 0 });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr } = useContext(MessagingСtx); const { showMsgErr } = useContext(MessagingCtx);
//Отображение журнала затрат (фактического, по рег. номеру ЛС и статьи затрат) //Отображение журнала затрат (фактического, по рег. номеру ЛС и статьи затрат)
const showCostNotesFact = async ({ faceAccRn, artclRn }) => { const showCostNotesFact = async ({ faceAccRn, artclRn }) => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect } from "react"; //Классы React import { useState, useContext, useEffect } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
//----------- //-----------
//Тело модуля //Тело модуля
@ -23,7 +23,7 @@ const useStageDetailInfoDataGrid = ({ stageRn }) => {
const [data, setData] = useState({ init: false }); const [data, setData] = useState({ init: false });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {
@ -58,7 +58,7 @@ const useStageDetailArtsDataGrid = ({ stageRn }) => {
const [data, setData] = useState({ init: false }); const [data, setData] = useState({ init: false });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {
@ -93,7 +93,7 @@ const useStageDetailArtsChart = ({ stageRn, display, type }) => {
const [data, setData] = useState({ init: false, currentType: null }); const [data, setData] = useState({ init: false, currentType: null });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography } from "@mui/material"; //Интерфейсные элементы import { Typography } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { P8PDataGrid } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { useStagesDataGrid } from "./stages_hooks"; //Хуки списка этапов проекта import { useStagesDataGrid } from "./stages_hooks"; //Хуки списка этапов проекта
@ -33,7 +33,7 @@ const Stages = ({ projectRn, projectCode }) => {
const [stageInfo, setStageInfo] = useState({ showInfo: false, stage: null, sFaceAcc: null }); const [stageInfo, setStageInfo] = useState({ showInfo: false, stage: null, sFaceAcc: null });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Отображение записи этапа проекта в штатном разделе //Отображение записи этапа проекта в штатном разделе
const showProjectStage = (prn, rn) => { const showProjectStage = (prn, rn) => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect } from "react"; //Классы React import { useState, useContext, useEffect } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML, formatDateRF } from "../../core/utils"; //Вспомогательные функции
import config from "../../../app.config"; //Настройки приложения import config from "../../../app.config"; //Настройки приложения
@ -32,7 +32,7 @@ const useStagesDataGrid = ({ projectRn, pageNumber, orders }) => {
const [data, setData] = useState({ init: false, morePages: true }); const [data, setData] = useState({ init: false, morePages: true });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//При необходимости обновить данные таблицы //При необходимости обновить данные таблицы
useEffect(() => { useEffect(() => {

View File

@ -10,8 +10,8 @@
import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Dialog, DialogContent, DialogActions, Button, DialogTitle } from "@mui/material"; //Интерфейсные элементы import { Dialog, DialogContent, DialogActions, Button, DialogTitle } from "@mui/material"; //Интерфейсные элементы
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
@ -36,10 +36,10 @@ const LabFactRptDtl = ({ periodId, title, onHide }) => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { configSystemPageSize } = useContext(ApplicationСtx); const { configSystemPageSize } = useContext(ApplicationCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка детализации фактической трудоёмкости по отчетам для ресурса //Загрузка детализации фактической трудоёмкости по отчетам для ресурса
const loadFactRptDtl = useCallback(async () => { const loadFactRptDtl = useCallback(async () => {

View File

@ -10,8 +10,8 @@
import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Dialog, DialogContent, DialogActions, Button, DialogTitle } from "@mui/material"; //Интерфейсные элементы import { Dialog, DialogContent, DialogActions, Button, DialogTitle } from "@mui/material"; //Интерфейсные элементы
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
@ -35,10 +35,10 @@ const LabPlanFOTDtl = ({ periodId, title, onHide }) => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { configSystemPageSize } = useContext(ApplicationСtx); const { configSystemPageSize } = useContext(ApplicationCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка детализации плановой трудоёмкости по ФОТ для ресурса //Загрузка детализации плановой трудоёмкости по ФОТ для ресурса
const loadPlanFOTDtl = useCallback(async () => { const loadPlanFOTDtl = useCallback(async () => {

View File

@ -10,8 +10,8 @@
import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Dialog, DialogContent, DialogActions, Button, DialogTitle } from "@mui/material"; //Интерфейсные элементы import { Dialog, DialogContent, DialogActions, Button, DialogTitle } from "@mui/material"; //Интерфейсные элементы
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы import { BUTTONS } from "../../../app.text"; //Текстовые ресурсы
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
@ -40,10 +40,10 @@ const LabPlanJobsDtl = ({ periodId, title, onHide, onProjectClick }) => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { configSystemPageSize } = useContext(ApplicationСtx); const { configSystemPageSize } = useContext(ApplicationCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка детализации плановой трудоёмкости по графику для ресурса //Загрузка детализации плановой трудоёмкости по графику для ресурса
const loadPlanJobsDtl = useCallback(async () => { const loadPlanJobsDtl = useCallback(async () => {

View File

@ -29,9 +29,9 @@ import {
TextField, TextField,
DialogTitle DialogTitle
} from "@mui/material"; //Интерфейсные элементы } from "@mui/material"; //Интерфейсные элементы
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { formatDateJSONDateOnly } from "../../core/utils"; //Вспомогательные функции import { formatDateJSONDateOnly } from "../../core/utils"; //Вспомогательные функции
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы
import { APP_STYLES } from "../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../app.styles"; //Типовые стили
@ -185,7 +185,7 @@ SaveChangesArea.propTypes = {
//Список проектов //Список проектов
const ProjectsList = ({ projects = [], selectedProject, onClick } = {}) => { const ProjectsList = ({ projects = [], selectedProject, onClick } = {}) => {
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { InlineMsgErr } = useContext(MessagingСtx); const { InlineMsgErr } = useContext(MessagingCtx);
//Генерация содержимого //Генерация содержимого
return projects.length > 0 ? ( return projects.length > 0 ? (
@ -270,13 +270,13 @@ const PrjJobs = () => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { InlineMsgInfo } = useContext(MessagingСtx); const { InlineMsgInfo } = useContext(MessagingCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Загрузка списка проектов //Загрузка списка проектов
const loadProjects = useCallback( const loadProjects = useCallback(

View File

@ -10,8 +10,8 @@
import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React import React, { useContext, useState, useCallback, useEffect } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { APP_STYLES } from "../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../app.styles"; //Типовые стили
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../core/utils"; //Вспомогательные функции
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { P8PDataGrid, P8P_DATA_GRID_SIZE, P8P_DATA_GRID_MORE_HEIGHT } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE, P8P_DATA_GRID_MORE_HEIGHT } from "../../components/p8p_data_grid"; //Таблица данных
@ -57,10 +57,10 @@ const ResMon = ({ ident, onPlanJobsDtlProjectClick }) => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { configSystemPageSize } = useContext(ApplicationСtx); const { configSystemPageSize } = useContext(ApplicationCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Загрузка данных монитора балансировки периодов с сервера //Загрузка данных монитора балансировки периодов с сервера
const loadPeriods = useCallback(async () => { const loadPeriods = useCallback(async () => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useContext, useCallback } from "react"; //Классы React import { useContext, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером
//----------- //-----------
//Тело модуля //Тело модуля
@ -17,7 +17,7 @@ import { BackEndСtx } from "../../../../context/backend"; //Контекст в
//Работа с областью SQL-выражения //Работа с областью SQL-выражения
const useQuerySQLExpr = query => { const useQuerySQLExpr = query => {
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Установка флага сокрытия/отображения значений аргументов в SQL-выражении запроса //Установка флага сокрытия/отображения значений аргументов в SQL-выражении запроса
const toggleSubstArgsVals = useCallback(async () => { const toggleSubstArgsVals = useCallback(async () => {

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useContext, useCallback } from "react"; //Классы React import { useContext, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером
//------------------------------------ //------------------------------------
//Вспомогательные функции и компоненты //Вспомогательные функции и компоненты
@ -21,7 +21,7 @@ import { BackEndСtx } from "../../../../context/backend"; //Контекст в
//Работа с аргументами запроса //Работа с аргументами запроса
const useQueryArgs = query => { const useQueryArgs = query => {
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Добавление аргумента запроса //Добавление аргумента запроса
const addArg = useCallback( const addArg = useCallback(

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Button, Icon } from "@mui/material"; //Интерфейсные компоненты MUI import { Button, Icon } from "@mui/material"; //Интерфейсные компоненты MUI
import { MessagingСtx } from "../../../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../../../context/messaging"; //Контекст сообщений
import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы приложения import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы приложения
import { P8PDialog } from "../../../../components/p8p_dialog"; //Типовой диалог import { P8PDialog } from "../../../../components/p8p_dialog"; //Типовой диалог
import { ARGUMENT_SHAPE } from "../argument/argument"; //Аргумент запроса import { ARGUMENT_SHAPE } from "../argument/argument"; //Аргумент запроса
@ -27,7 +27,7 @@ const QueryArgsDialog = ({ args, onArgAdd, onArgEdit, onArgRemove, onClose }) =>
const [modArg, setModArg] = useState(null); const [modArg, setModArg] = useState(null);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Нажатие на кнопку "Закрыть" //Нажатие на кнопку "Закрыть"
const handleClose = () => onClose && onClose(); const handleClose = () => onClose && onClose();

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useContext, useCallback } from "react"; //Классы React import { useContext, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером
//----------- //-----------
//Тело модуля //Тело модуля
@ -17,7 +17,7 @@ import { BackEndСtx } from "../../../../context/backend"; //Контекст в
//Работа с условиями отбора запроса //Работа с условиями отбора запроса
const useQueryConditions = query => { const useQueryConditions = query => {
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Установка условий отбора в запросе //Установка условий отбора в запросе
const setCond = useCallback( const setCond = useCallback(

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useRef, useContext, useCallback, useEffect, useState } from "react"; //Классы React import { useRef, useContext, useCallback, useEffect, useState } from "react"; //Классы React
import { BackEndСtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером
import { object2Base64XML } from "../../../../core/utils"; //Вспомогательные функции import { object2Base64XML } from "../../../../core/utils"; //Вспомогательные функции
//----------- //-----------
@ -30,7 +30,7 @@ const useEntities = (filter, minFilterLen) => {
const [data, setData] = useState(null); const [data, setData] = useState(null);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Обновление данных //Обновление данных
const doRefresh = () => setRefresh(true); const doRefresh = () => setRefresh(true);
@ -81,7 +81,7 @@ const useEntities = (filter, minFilterLen) => {
//Работа с сущностями запроса //Работа с сущностями запроса
const useQueryEntities = query => { const useQueryEntities = query => {
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Добавление сущности в запрос //Добавление сущности в запрос
const addEnt = useCallback( const addEnt = useCallback(
@ -123,7 +123,7 @@ const useEntityAttrs = (query, entity) => {
const [data, setData] = useState(null); const [data, setData] = useState(null);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndСtx); const { executeStored, SERV_DATA_TYPE_CLOB } = useContext(BackEndCtx);
//Обновление данных //Обновление данных
const doRefresh = () => setRefresh(true); const doRefresh = () => setRefresh(true);

View File

@ -10,7 +10,7 @@
import React, { useContext, useState } from "react"; //Классы React import React, { useContext, useState } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Icon, Button } from "@mui/material"; //Интерфейсные элементы import { Icon, Button } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../../../context/messaging"; //Контекст сообщений приложения import { MessagingCtx } from "../../../../context/messaging"; //Контекст сообщений приложения
import { P8PEditorSubHeader } from "../../../../components/editors/p8p_editor_sub_header"; //Подзаголовок группы параметров редактора import { P8PEditorSubHeader } from "../../../../components/editors/p8p_editor_sub_header"; //Подзаголовок группы параметров редактора
import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы
import { ENTITY_SHAPE } from "../entity/entity"; //Описание сущности import { ENTITY_SHAPE } from "../entity/entity"; //Описание сущности
@ -34,7 +34,7 @@ const InspectorQueryEntities = ({ query, entity, onOptionsChanged }) => {
const { addEnt, removeEnt } = useQueryEntities(query); const { addEnt, removeEnt } = useQueryEntities(query);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Уведомление родителя об изменении свойств //Уведомление родителя об изменении свойств
const notifyOptionsChanged = () => onOptionsChanged && onOptionsChanged(); const notifyOptionsChanged = () => onOptionsChanged && onOptionsChanged();

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useContext, useCallback } from "react"; //Классы React import { useContext, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером
//----------- //-----------
//Тело модуля //Тело модуля
@ -17,7 +17,7 @@ import { BackEndСtx } from "../../../../context/backend"; //Контекст в
//Работа со связами запроса //Работа со связами запроса
const useQueryRelations = query => { const useQueryRelations = query => {
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Добавление отношения сущностей в запрос //Добавление отношения сущностей в запрос
const addRl = useCallback( const addRl = useCallback(

View File

@ -10,7 +10,7 @@
import React, { useContext } from "react"; //Классы React import React, { useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Icon, Button, FormControlLabel, Checkbox } from "@mui/material"; //Интерфейсные элементы import { Icon, Button, FormControlLabel, Checkbox } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../../../context/messaging"; //Контекст сообщений приложения import { MessagingCtx } from "../../../../context/messaging"; //Контекст сообщений приложения
import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы
import { RELATION_SHAPE } from "../relation/relation"; //Описание связи import { RELATION_SHAPE } from "../relation/relation"; //Описание связи
import { useQueryRelations } from "./hooks"; //Хуки для работы со связями import { useQueryRelations } from "./hooks"; //Хуки для работы со связями
@ -36,7 +36,7 @@ const STYLES = {
//Компонент инспектора - Связи запроса //Компонент инспектора - Связи запроса
const InspectorQueryRelations = ({ query, relation, onOptionsChanged }) => { const InspectorQueryRelations = ({ query, relation, onOptionsChanged }) => {
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Работа со связями на сервере //Работа со связями на сервере
const { removeRl, setRlMandatory } = useQueryRelations(query); const { removeRl, setRlMandatory } = useQueryRelations(query);

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect, useCallback } from "react"; //Классы React import { useState, useContext, useEffect, useCallback } from "react"; //Классы React
import { BackEndСtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../../context/backend"; //Контекст взаимодействия с сервером
//----------- //-----------
//Тело модуля //Тело модуля
@ -29,7 +29,7 @@ const useQueries = () => {
const [data, setData] = useState(null); const [data, setData] = useState(null);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Обновление данных //Обновление данных
const doRefresh = () => setRefresh(true); const doRefresh = () => setRefresh(true);

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Button, Icon } from "@mui/material"; //Интерфейсные компоненты MUI import { Button, Icon } from "@mui/material"; //Интерфейсные компоненты MUI
import { MessagingСtx } from "../../../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../../../context/messaging"; //Контекст сообщений
import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы приложения import { BUTTONS } from "../../../../../app.text"; //Общие текстовые ресурсы приложения
import { P8PConfigDialog } from "../../../../components/editors/p8p_config_dialog"; //Типовой диалог настройки import { P8PConfigDialog } from "../../../../components/editors/p8p_config_dialog"; //Типовой диалог настройки
import { useQueries } from "./hooks"; //Хуки для работы с запросами import { useQueries } from "./hooks"; //Хуки для работы с запросами
@ -30,7 +30,7 @@ const QueriesManager = ({ current = null, onQuerySelect = null, onCancel = null
const [queries, insertQuery, updateQuery, deleteQuery, setQueryReady, setQueryPbl] = useQueries(); const [queries, insertQuery, updateQuery, deleteQuery, setQueryReady, setQueryPbl] = useQueries();
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//При добавлении запроса //При добавлении запроса
const handleQueryAdd = () => setModQuery(true); const handleQueryAdd = () => setModQuery(true);

View File

@ -8,7 +8,7 @@
//--------------------- //---------------------
import { useState, useContext, useEffect } from "react"; //Классы React import { useState, useContext, useEffect } from "react"; //Классы React
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { NODE_TYPE } from "./common"; //Общие ресурсы и константы редактора import { NODE_TYPE } from "./common"; //Общие ресурсы и константы редактора
//--------- //---------
@ -119,7 +119,7 @@ const useQuery = query => {
const [querySQL, setQuerySQL] = useState(null); const [querySQL, setQuerySQL] = useState(null);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Обновление данных //Обновление данных
const doRefresh = () => setRefresh(true); const doRefresh = () => setRefresh(true);

View File

@ -9,7 +9,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import { Box, Grid } from "@mui/material"; //Интерфейсные компоненты MUI import { Box, Grid } from "@mui/material"; //Интерфейсные компоненты MUI
import { ApplicationСtx } from "../../context/application"; //Контекст взаимодействия с приложением import { ApplicationCtx } from "../../context/application"; //Контекст взаимодействия с приложением
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Компоненты рабочего стола import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Компоненты рабочего стола
import { P8PEditorToolBar } from "../../components/editors/p8p_editor_toolbar"; //Панель инструментов редактора import { P8PEditorToolBar } from "../../components/editors/p8p_editor_toolbar"; //Панель инструментов редактора
import { QueryDiagram } from "./components/query_diagram/query_diagram"; //Диаграмма запроса import { QueryDiagram } from "./components/query_diagram/query_diagram"; //Диаграмма запроса
@ -61,7 +61,7 @@ const QueryEditor = () => {
const { addRl, removeRl } = useQueryRelations(query); const { addRl, removeRl } = useQueryRelations(query);
//Подключение к контексту приложения //Подключение к контексту приложения
const { setAppBarTitle } = useContext(ApplicationСtx); const { setAppBarTitle } = useContext(ApplicationCtx);
//Выбор сущности //Выбор сущности
const selectEntity = ent => { const selectEntity = ent => {

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Icon, Button } from "@mui/material"; //Интерфейсные элементы import { Icon, Button } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../../context/messaging"; //Контекст сообщений
import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { APP_STYLES } from "../../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../../app.styles"; //Типовые стили
@ -56,7 +56,7 @@ const Marks = ({ marks, order, marksLoading, marksInit, onRefresh, onMarkInsert,
const [modMark, setModMark] = useState(null); const [modMark, setModMark] = useState(null);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Подключение к словарям //Подключение к словарям
const { showMark, showMarkCn, showMarkCnAdd } = useDictionary(); const { showMark, showMarkCn, showMarkCnAdd } = useDictionary();

View File

@ -10,7 +10,7 @@
import React, { useState, useContext, useEffect } from "react"; //Классы React import React, { useState, useContext, useEffect } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Box } from "@mui/material"; //Интерфейсные элементы import { Box } from "@mui/material"; //Интерфейсные элементы
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import { useConfSectionMarks } from "../hooks"; //Кастомные хуки import { useConfSectionMarks } from "../hooks"; //Кастомные хуки
import { ActionMessage } from "./action_message"; //Сообщение с действиями import { ActionMessage } from "./action_message"; //Сообщение с действиями
import { Marks } from "./marks"; //Показатели раздела import { Marks } from "./marks"; //Показатели раздела
@ -41,7 +41,7 @@ const Section = ({ section = null }) => {
const [marks, refreshMarks, marksLoading, marksInit] = useConfSectionMarks(section, order.rowOrder, order.columnOrder); const [marks, refreshMarks, marksLoading, marksInit] = useConfSectionMarks(section, order.rowOrder, order.columnOrder);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Добавление показателя //Добавление показателя
const insertMark = async ({ code, name, row, rowCode, rowVersion, column, columnCode, columnVersion }, cb) => { const insertMark = async ({ code, name, row, rowCode, rowVersion, column, columnCode, columnVersion }, cb) => {

View File

@ -11,9 +11,9 @@ import React, { useState, useEffect, useContext, useCallback } from "react"; //
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Box, Tabs, IconButton, Icon, Stack, Button } from "@mui/material"; //Интерфейсные компоненты import { Box, Tabs, IconButton, Icon, Stack, Button } from "@mui/material"; //Интерфейсные компоненты
import { tabsClasses } from "@mui/material/Tabs"; //Классы закладок import { tabsClasses } from "@mui/material/Tabs"; //Классы закладок
import { ApplicationСtx } from "../../../context/application"; //Контекст взаимодействия с приложением import { ApplicationCtx } from "../../../context/application"; //Контекст взаимодействия с приложением
import { BackEndСtx } from "../../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../../context/messaging"; //Контекст сообщений
import { useConfSections } from "../hooks"; //Кастомные хуки import { useConfSections } from "../hooks"; //Кастомные хуки
import { ActionMessage } from "./action_message"; //Сообщение с действиями import { ActionMessage } from "./action_message"; //Сообщение с действиями
import { SectionTab } from "./section_tab"; //Закладка раздела import { SectionTab } from "./section_tab"; //Закладка раздела
@ -57,13 +57,13 @@ const Sections = ({ conf, onSectionChange, onSectionCountChange }) => {
const [confDesc, sections, refreshSections, sectionsLoading, sectionsInit] = useConfSections(conf); const [confDesc, sections, refreshSections, sectionsLoading, sectionsInit] = useConfSections(conf);
//Подключение к контексту приложения //Подключение к контексту приложения
const { setAppBarTitle } = useContext(ApplicationСtx); const { setAppBarTitle } = useContext(ApplicationCtx);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Выбор раздела //Выбор раздела
const selectSection = useCallback( const selectSection = useCallback(

View File

@ -9,8 +9,8 @@
import { useState, useContext, useEffect } from "react"; //Классы React import { useState, useContext, useEffect } from "react"; //Классы React
import { xml2JSON } from "../../core/utils"; //Вспомогательные функции import { xml2JSON } from "../../core/utils"; //Вспомогательные функции
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
//----------- //-----------
//Тело модуля //Тело модуля
@ -34,7 +34,7 @@ const useConfSections = conf => {
const [dataSections, setDataSections] = useState([]); const [dataSections, setDataSections] = useState([]);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Обновление данных //Обновление данных
const doRefresh = () => setRefresh(true); const doRefresh = () => setRefresh(true);
@ -95,7 +95,7 @@ const useConfSectionMarks = (section, rowOrder = 0, columnOrder = 0) => {
const [data, setData] = useState(null); const [data, setData] = useState(null);
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Обновление данных //Обновление данных
const doRefresh = () => setRefresh(true); const doRefresh = () => setRefresh(true);
@ -152,7 +152,7 @@ const useConfSectionMarks = (section, rowOrder = 0, columnOrder = 0) => {
//Работа со словарями //Работа со словарями
const useDictionary = () => { const useDictionary = () => {
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowDictionary } = useContext(ApplicationCtx);
//Выбор строки //Выбор строки
const selectRRPRow = (code, version, callBack) => { const selectRRPRow = (code, version, callBack) => {

View File

@ -11,7 +11,7 @@ import React, { useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Grid, Paper } from "@mui/material"; //Интерфейсные элементы import { Typography, Grid, Paper } from "@mui/material"; //Интерфейсные элементы
import { P8PChart, useP8PChart } from "../../components/p8p_chart"; //График import { P8PChart, useP8PChart } from "../../components/p8p_chart"; //График
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//--------- //---------
//Константы //Константы
@ -35,7 +35,7 @@ const Chart = ({ title }) => {
const { chart, isDataLoaded } = useP8PChart({ stored: "PKG_P8PANELS_SAMPLES.CHART" }); const { chart, isDataLoaded } = useP8PChart({ stored: "PKG_P8PANELS_SAMPLES.CHART" });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit } = useContext(ApplicationСtx); const { pOnlineShowUnit } = useContext(ApplicationCtx);
//Отработка нажатия на график //Отработка нажатия на график
const handleChartClick = ({ item }) => { const handleChartClick = ({ item }) => {

View File

@ -28,7 +28,7 @@ import { formatDateRF, hasValue } from "../../core/utils"; //Вспомогат
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы
import { P8PCyclogram, useP8PCyclogram } from "../../components/p8p_cyclogram"; //Циклограмма import { P8PCyclogram, useP8PCyclogram } from "../../components/p8p_cyclogram"; //Циклограмма
import { P8P_CYCLOGRAM_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_CYCLOGRAM_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
//--------- //---------
//Константы //Константы
@ -78,7 +78,7 @@ const CustomTaskDialog = ({ task, ident, onReload, close }) => {
const textType = task.type === 0 ? "Задачи проекта" : task.type === 1 ? "Этап проекта" : "Работа проекта"; const textType = task.type === 0 ? "Задачи проекта" : task.type === 1 ? "Этап проекта" : "Работа проекта";
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При необходимости перезагрузить данные //При необходимости перезагрузить данные
const handleReload = useCallback(() => onReload && onReload(), [onReload]); const handleReload = useCallback(() => onReload && onReload(), [onReload]);
@ -230,7 +230,7 @@ const Cyclogram = ({ title }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//При подключении компонента к странице //При подключении компонента к странице
useEffect(() => { useEffect(() => {

View File

@ -12,7 +12,7 @@ import PropTypes from "prop-types"; //Контроль свойств компо
import { Typography, Grid, Stack, Icon, Box, Button } from "@mui/material"; //Интерфейсные элементы import { Typography, Grid, Stack, Icon, Box, Button } from "@mui/material"; //Интерфейсные элементы
import { P8PDataGrid, P8P_DATA_GRID_SIZE, useP8PDataGrid } from "../../components/p8p_data_grid"; //Таблица данных import { P8PDataGrid, P8P_DATA_GRID_SIZE, useP8PDataGrid } from "../../components/p8p_data_grid"; //Таблица данных
import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
import { APP_STYLES } from "../../../app.styles"; //Типовые стили import { APP_STYLES } from "../../../app.styles"; //Типовые стили
//--------- //---------
@ -91,7 +91,7 @@ const DataGrid = ({ title }) => {
}); });
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//При нажатии на копку контрагента //При нажатии на копку контрагента
const handleAgnButtonClicked = agnCode => pOnlineShowDocument({ unitCode: "AGNLIST", document: agnCode, inRnParameter: "in_AGNABBR" }); const handleAgnButtonClicked = agnCode => pOnlineShowDocument({ unitCode: "AGNLIST", document: agnCode, inRnParameter: "in_AGNABBR" });

View File

@ -14,7 +14,7 @@ import { formatDateRF, hasValue } from "../../core/utils"; //Вспомогат
import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы
import { P8PGantt, useP8PGantt } from "../../components/p8p_gantt"; //Диаграмма Ганта import { P8PGantt, useP8PGantt } from "../../components/p8p_gantt"; //Диаграмма Ганта
import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
//--------- //---------
//Константы //Константы
@ -110,7 +110,7 @@ const Gantt = ({ title }) => {
}); });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Изменение данных диаграммы //Изменение данных диаграммы
const modifyData = useCallback( const modifyData = useCallback(

View File

@ -10,7 +10,7 @@
import React, { useContext } from "react"; //Классы React import React, { useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Stack, Divider } from "@mui/material"; //Интерфейсные элементы import { Typography, Stack, Divider } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { P8P_INDICATOR_VARIANT, P8P_INDICATOR_STATE, P8PIndicator, useP8PIndicator } from "../../components/p8p_indicator"; //Индикатор import { P8P_INDICATOR_VARIANT, P8P_INDICATOR_STATE, P8PIndicator, useP8PIndicator } from "../../components/p8p_indicator"; //Индикатор
//--------- //---------
@ -34,7 +34,7 @@ const Indicator = ({ title }) => {
const { indicator, isDataLoaded } = useP8PIndicator({ stored: "PKG_P8PANELS_SAMPLES.INDICATOR" }); const { indicator, isDataLoaded } = useP8PIndicator({ stored: "PKG_P8PANELS_SAMPLES.INDICATOR" });
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgInfo } = useContext(MessagingСtx); const { showMsgInfo } = useContext(MessagingCtx);
//Генерация содержимого //Генерация содержимого
return ( return (

View File

@ -10,7 +10,7 @@
import React, { useContext } from "react"; //Классы React import React, { useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Button } from "@mui/material"; //Интерфейсные элементы import { Typography, Button } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
//--------- //---------
//Константы //Константы
@ -29,7 +29,7 @@ const STYLES = {
//Пример: Индикатор процесса //Пример: Индикатор процесса
const Loader = ({ title }) => { const Loader = ({ title }) => {
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showLoader, hideLoader } = useContext(MessagingСtx); const { showLoader, hideLoader } = useContext(MessagingCtx);
//Генерация содержимого //Генерация содержимого
return ( return (

View File

@ -10,7 +10,7 @@
import React, { useContext, useState } from "react"; //Классы React import React, { useContext, useState } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Divider, Button } from "@mui/material"; //Интерфейсные элементы import { Typography, Divider, Button } from "@mui/material"; //Интерфейсные элементы
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
//--------- //---------
//Константы //Константы
@ -33,7 +33,7 @@ const Messages = ({ title }) => {
const [state, setState] = useState({ inlineErr: true, inlineWarn: true, inlineInfo: true }); const [state, setState] = useState({ inlineErr: true, inlineWarn: true, inlineInfo: true });
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgErr, showMsgWarn, showMsgInfo, InlineMsgErr, InlineMsgInfo, InlineMsgWarn } = useContext(MessagingСtx); const { showMsgErr, showMsgWarn, showMsgInfo, InlineMsgErr, InlineMsgInfo, InlineMsgWarn } = useContext(MessagingCtx);
//Генерация содержимого //Генерация содержимого
return ( return (

View File

@ -10,9 +10,9 @@
import React, { useEffect, useContext, useCallback, useState } from "react"; //Классы React import React, { useEffect, useContext, useCallback, useState } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Grid, List, ListItemButton, ListItem, ListItemText, IconButton, Icon, Button, TextField, Box } from "@mui/material"; //Интерфейсные элементы import { Typography, Grid, List, ListItemButton, ListItem, ListItemText, IconButton, Icon, Button, TextField, Box } from "@mui/material"; //Интерфейсные элементы
import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером import { BackEndCtx } from "../../context/backend"; //Контекст взаимодействия с сервером
import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { MessagingCtx } from "../../context/messaging"; //Контекст сообщений
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//--------- //---------
//Константы //Константы
@ -41,13 +41,13 @@ const Mui = ({ title }) => {
const [agentForm, setAgentForm] = useState({ agnAbbr: "", agnName: "" }); const [agentForm, setAgentForm] = useState({ agnAbbr: "", agnName: "" });
//Подключение к контексту взаимодействия с сервером //Подключение к контексту взаимодействия с сервером
const { executeStored } = useContext(BackEndСtx); const { executeStored } = useContext(BackEndCtx);
//Подключение к контексту сообщений //Подключение к контексту сообщений
const { showMsgWarn } = useContext(MessagingСtx); const { showMsgWarn } = useContext(MessagingCtx);
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowDocument } = useContext(ApplicationСtx); const { pOnlineShowDocument } = useContext(ApplicationCtx);
//Загрузка списка контрагентов //Загрузка списка контрагентов
const agentsGet = useCallback(async () => { const agentsGet = useCallback(async () => {

View File

@ -10,7 +10,7 @@
import React, { useState, useContext } from "react"; //Классы React import React, { useState, useContext } from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента import PropTypes from "prop-types"; //Контроль свойств компонента
import { Typography, Button, Divider } from "@mui/material"; //Интерфейсные элементы import { Typography, Button, Divider } from "@mui/material"; //Интерфейсные элементы
import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { ApplicationCtx } from "../../context/application"; //Контекст приложения
//--------- //---------
//Константы //Константы
@ -33,7 +33,7 @@ const P8Online = ({ title }) => {
const [agent, setAgent] = useState(""); const [agent, setAgent] = useState("");
//Подключение к контексту приложения //Подключение к контексту приложения
const { pOnlineShowUnit, pOnlineShowTab, pOnlineShowDocument, pOnlineShowDictionary } = useContext(ApplicationСtx); const { pOnlineShowUnit, pOnlineShowTab, pOnlineShowDocument, pOnlineShowDictionary } = useContext(ApplicationCtx);
//Генерация содержимого //Генерация содержимого
return ( return (

662
dist/p8-panels.js vendored

File diff suppressed because one or more lines are too long