diff --git a/README.md b/README.md index 2fe38f1..08d5e95 100644 --- a/README.md +++ b/README.md @@ -63,101 +63,98 @@ This file contains data for show a report. The difference between the online and offline format is the presence of a wrapper for strings. The offline format will be pulled up like a `js` file if you just opened `/build/index.html ` ### How to view the report online? - -- Go to the [website](https://assayo.jp/) -- Click the “[Demo](https://assayo.jp/demo)” button. -- Drag the `log.txt` file into the browser window. +- go to the [website](https://assayo.jp/); +- click the “[Demo](https://assayo.jp/demo)” button; +- drag the `log.txt` file into the browser window; ### How to view the report offline? -- Download this repository. -- Drag the `log.txt` file to the `/build` folder. -- Run `/build/index.html` -- Or drag the `/build` folder to your repository (where the `log.txt` is located). You can change the name. For example, from `/build` to `/report`. +- download this repository; +- drag the `log.txt` file to the `/build` folder; +- run `/build/index.html`; +- or drag the `/build` folder to your repository (where the `log.txt` is located). You can change the name. For example, from `/build` to `/report`. -В этом случае важно, чтобы файл `log.txt` был сгенерирован командой для офлайн просмотра. +In this case, it is important that the `log.txt` file is generated by the command for offline viewing. ### How to rebuild the report build? -- Download this repository -- Run `npm install` -- Run `npm run build` -- The new build will be in the `/build` folder +- download this repository +- run `npm install` +- run `npm run build` +- the new build will be in the `/build` folder ### How to view a report on a group of microservices? -- Generate for each microservice `log.txt` (`log-1.txt`, `log-2.txt`, `log-3.txt` и т.д.) -- See “How to view an online report?”. At the last step, drag all the files at once into the browser window. -- See “How to see a report offline?”. At the second step, drag all microservice files (`log-1.txt`, `log-2.txt`, `log-3.txt` and etc.) to the report folder (`/build`). +- generate for each microservice file `log.txt` (`log-1.txt`, `log-2.txt`, `log-3.txt` and etc.) +- see “How to view an online report?”. At the last step, drag all the files at once into the browser window. +- see “How to see a report offline?”. At the second step, drag all microservice files (`log-1.txt`, `log-2.txt`, `log-3.txt` and etc.) to the report folder (`/build`). ### How to brand the interface? -Вы можете написать свою тему для интерфейса. Можно менять: -- **Заголовок**. Вы можете указать его в URL-параметре ```title```. Например: ```?title=You Company``` -- **Визуальную тему**. Для этого нужно подготовить CSS файл с новыми стилями и указать его адрес в URL-параметре ```theme```. Например: ```?theme=//company.com/some.css```. Вы можете использовать имена классов в качестве селекторов. Большинство из них не меняется в при выходе новой версий. -- **Язык**. Вы можете указать его в URL-параметре ```lang```. Например: ```?lang=es``` +You can create your own interface theme. Options: +- **Title**. You can set default document title in the URL parameter ```title```. Example: ```?title=You Company``` +- **Visual theme**. To do this, you need to prepare a CSS file with new styles and specify its URL in the ```theme``` parameter. Example: ```?theme=//company.com/some.css```. You can use class names as selectors. Most of them do not change in new versions. +- **Language**. You can set language in the URL parameter ```lang```. Example: ```?lang=es``` -### Как добавить или отредактировать перевод? +### How to add or edit a translation? -Вы можете добавить новый перевод или поправить текущий в разделе ```ts/translations/``` и создать Pull Request. +You can add a new translation or correct an existing one in the ```ts/translations/``` folder and create a Pull Request. -### Как подписывать коммиты? +### How to sign commits? -Следуйте практике [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/). Например: +Follow the [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/). Example: ``` JIRA-1234 feat(profile): Added avatar for user ``` -- номер задачи в таск трекере `(JIRA-1234)` -- тип работы `(feat, fix, style, refactor, test, doc и т.д.)` -- фича `(profile - раздел сайта, страница или новый функционал, одним словом)` -- какую проблему решали `(Added avatar for user)` +- task number in the task tracker `(JIRA-1234)` +- type of work `(feat, fix, style, refactor, test, doc и т.д.)` +- feature `(profile - new page on site or new function, use one (two) short wordor an abbreviation)` +- what problem were solved `(Added avatar for user)` -### Как автоматизировать сбор данных? +### How to automate data collection? -#### Без бекенда -- создайте клон нужного вам репозитория; -- скопируйте в корень папку `build`; -- откройте `build/index.html` в браузере и добавьте в закладки; -- добавьте ярлык на `build/assets/ci-cd.sh` в папку автозагрузки (Windows); +#### Without backend +- create a clone of the repository you need; +- copy the `build` folder to the root; +- open `build/index.html` in the browser and add it to bookmarks; +- add a shortcut to `build/assets/ci-cd.sh` to the startup folder (Windows); -Каждый раз, при перезагрузке компьютера, скрипт будет обновлять статистику по всем данным, которые автоматически влились в основную ветку. +Every time you restart the computer, the script will update statistics on all the data that automatically merged into the main branch. ### DevOps (CI/CD) -#### Публичный сервер - -Вы можете выкладывать файл с данными для построения отчёта на публичный URL. А для его визуализации использовать веб-интерфейс сайта [assayo](https://assayo.jp/). Просто укажите адресс, где лежат данные, в URL-параметре ```dump```: +#### Public server +You can upload the data file for report construction to a public URL. And use the website’s [assayo](https://assayo.jp/?ref=github&lang=en) to visualize it. ``` https://assayo.jp/demo/?dump=//you_site.com/some/log.txt ``` -#### Приватный сервер -- скачайте [docker образ](https://hub.docker.com/r/bakhirev/assayo); -- поднимите его в локальной сети; -- для просмотра отчётов используйте веб-интерфейс указывая ему адресс, где лежат данные, в URL-параметре ```dump```: +#### Private server +- download the [docker image](https://hub.docker.com/r/bakhirev/assayo); +- run it on your local network; +- use the web interface to view the reports, set the URL of the data in the URL parameter ```dump```: ``` http://assayo_url/?dump=//you_url/some/log.txt -assayo_url - URL адресс контейнера assayo, он слушает 80 порт; -you_url - URL адресс вашего контейнера с логами git; +assayo_url - URL of the assayo container, it listens on port 80; +you_url - URL of your container with git logs; ``` -По умолчанию образ запустится по адресу ```http://127.0.0.1:80/```. Если не получилось проверьте свободен ли у вас 80 порт. -#### Обновление Docker-образа +By default, the image will run at ```http://127.0.0.1:80/```. If it doesn't work, check if port 80 is free. -- удилить метрику, аллерты, старые билды; -- собрать билд ```npm run build``` -- собрать образ ```docker build -t assayo .``` -- визуально проверить образ ```docker run --name assayo -p 80:80 -d assayo```; -- поставить тег ```docker tag IMAGE_ID bakhirev/assayo:latest```; -- запушить образ в Docker Hub +#### How to update the Docker image? +- remove metrics, alerts, old builds; +- run ```npm run build``` +- run ```docker build -t assayo .``` +- visually check the image ```docker run --name assayo -p 80:80 -d assayo```; +- add tag ```docker tag IMAGE_ID bakhirev/assayo:latest```; +- push image to [Docker Hub](https://hub.docker.com/r/bakhirev/assayo); -### Релизы, примерно, раз в полгода. Что дальше: +### Releases are planned approximately once every six months. What’s next: +- more recommendations and achievements; +- annual/monthly summaries, report printing; +- localization and internationalization; +- file analysis; +- different roles for statistics (hiding finances); +- development of the backend, integration with other systems; -- больше советов и достижений; -- итоги года / месяца, печать отчётов; -- локализация и интернационализация; -- анализ файлов; -- разные роли для статистики (скрытие финансов); -- разработка бекенда, интеграции с другими системами; - -### Пожелания, предложения, замечания -- telegramm [@bakhirev](https://t.me/bakhirev) (приоритетный способ связи) +### Feedback, suggestions, comments +- telegramm [@bakhirev](https://t.me/bakhirev) (priority method of communication) - [alexey-bakhirev@yandex.ru](mailto:alexey-bakhirev@yandex.ru) -- сайт [https://assayo.jp/](https://assayo.jp/) +- website [https://assayo.jp/](https://assayo.jp/) diff --git a/documents/RU.md b/documents/RU.md index 4fc5733..3314ec0 100644 --- a/documents/RU.md +++ b/documents/RU.md @@ -81,7 +81,7 @@ Git создаст файл `log.txt`. - Свежая сборка будет в папке `/build` ### Как посмотреть отчёт по группе микросервисов? -- Сгенерировать для каждого микросервиса `log.txt` (`log-1.txt`, `log-2.txt`, `log-3.txt` и т.д.) +- Сгенерировать для каждого микросервиса файл `log.txt` (`log-1.txt`, `log-2.txt`, `log-3.txt` и т.д.) - См. «Как посмотреть отчёт онлайн?». На последнем шаге перетащить сразу все файлы в окно браузера. - См. «Как посмотреть отчёт офлайн?». На втором шаге перетащить все файлы микросервисов (`log-1.txt`, `log-2.txt`, `log-3.txt` и т.д.) в папку отчета (`/build`). diff --git a/documents/nostalgie.bat b/documents/nostalgie.bat new file mode 100644 index 0000000..cfe82c1 --- /dev/null +++ b/documents/nostalgie.bat @@ -0,0 +1,17 @@ +@echo off + +for /f "skip=1 usebackq" %%g in (`wmic nicconfig where "description like '%%Check Point%%' and DHCPServer is not null" get DHCPServer ^| findstr /r /v "^$"`) do ( + if "%%g"=="" ( + echo Cannot find correct CheckPointGateway + goto:eof + ) else ( + SET CheckPointGateway=%%g + ) +) +echo CheckPointGateway=%CheckPointGateway% +for /f "tokens=1,2,3 usebackq" %%g in (`route PRINT ^| findstr "%CheckPointGateway%"`) do ( + echo %%g | >nul findstr /r /c:"10\..*" || echo %%g | >nul findstr /r /c:"192\.168\..*" || echo %%g | >nul findstr /r /c:"172\.[0-2][0-9]\..*" || echo %%g | >nul findstr /r /c:"172\.3[0-1]\..*" || ( + route DELETE %%g mask %%h %%i >nul + ) + echo | set /p="." +) diff --git a/public/assets/chart/2022-11-17 18-36-47.mkv b/public/assets/chart/2022-11-17 18-36-47.mkv deleted file mode 100644 index 2bcaf9a..0000000 Binary files a/public/assets/chart/2022-11-17 18-36-47.mkv and /dev/null differ diff --git a/public/assets/chart/2023-03-15_17-28-09.mp4 b/public/assets/chart/2023-03-15_17-28-09.mp4 deleted file mode 100644 index 35f7883..0000000 Binary files a/public/assets/chart/2023-03-15_17-28-09.mp4 and /dev/null differ diff --git a/public/assets/menu/arrow_left.svg b/public/assets/menu/arrow_left.svg new file mode 100644 index 0000000..aa76378 --- /dev/null +++ b/public/assets/menu/arrow_left.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/menu/arrow_right.svg b/public/assets/menu/arrow_right.svg new file mode 100644 index 0000000..f597d99 --- /dev/null +++ b/public/assets/menu/arrow_right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/menu/arrow_left.svg b/src/assets/menu/arrow_left.svg new file mode 100644 index 0000000..aa76378 --- /dev/null +++ b/src/assets/menu/arrow_left.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/menu/arrow_right.svg b/src/assets/menu/arrow_right.svg new file mode 100644 index 0000000..f597d99 --- /dev/null +++ b/src/assets/menu/arrow_right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/index.tsx b/src/index.tsx index 5bab393..b0d505a 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -21,8 +21,8 @@ if (module.hot) { module.hot.accept(); } -localization.parse('ru', ru); localization.parse('en', en); +localization.parse('ru', ru); function renderReactApplication() { // @ts-ignore diff --git a/src/ts/components/Cards/styles/index.module.scss b/src/ts/components/Cards/styles/index.module.scss index ef0c572..95df9e1 100644 --- a/src/ts/components/Cards/styles/index.module.scss +++ b/src/ts/components/Cards/styles/index.module.scss @@ -51,7 +51,6 @@ &_title { width: 60%; - max-width: 200px; } &_value { diff --git a/src/ts/helpers/Localization/index.ts b/src/ts/helpers/Localization/index.ts index 1033fec..6b618a0 100644 --- a/src/ts/helpers/Localization/index.ts +++ b/src/ts/helpers/Localization/index.ts @@ -1,5 +1,5 @@ class Localization { - language:string = 'en'; + language:string = 'ru'; translations: any = {}; diff --git a/src/ts/pages/PageWrapper/components/LightHeader/index.tsx b/src/ts/pages/PageWrapper/components/LightHeader/index.tsx new file mode 100644 index 0000000..9420eaa --- /dev/null +++ b/src/ts/pages/PageWrapper/components/LightHeader/index.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { useParams } from 'react-router-dom'; + +import localization from 'ts/helpers/Localization'; + +import style from '../../styles/light_header.module.scss'; + +function LightHeader() { + const { type, page } = useParams(); + const title = type && page + ? localization.get(`sidebar.${type}.${page}`) + : localization.get('sidebar.team.total'); + + return ( +
+
{ + console.log('x'); + }} + /> +

+ {title} +

+
{ + console.log('x'); + }} + /> +
+ ); +} + +export default LightHeader; diff --git a/src/ts/pages/PageWrapper/components/footer/Button.tsx b/src/ts/pages/PageWrapper/components/footer/Button.tsx new file mode 100644 index 0000000..42279cb --- /dev/null +++ b/src/ts/pages/PageWrapper/components/footer/Button.tsx @@ -0,0 +1,30 @@ +import React from 'react'; + +import style from '../../styles/footer.module.scss'; + +interface IButtonProps { + id: string; + title: string; + icon: string; +} + +function Button({ + id, + title, + icon, +}: IButtonProps) { + console.dir(id); + return ( +
+
+
+ {title} +
+
+ ); +} + +export default Button; diff --git a/src/ts/pages/PageWrapper/components/footer/index.tsx b/src/ts/pages/PageWrapper/components/footer/index.tsx new file mode 100644 index 0000000..617165b --- /dev/null +++ b/src/ts/pages/PageWrapper/components/footer/index.tsx @@ -0,0 +1,54 @@ +import React from 'react'; + +import localization from 'ts/helpers/Localization'; + +import Button from './Button'; +import style from '../../styles/footer.module.scss'; + +const MENU = [ + { + id: 'team', + title: 'sidebar.switch.team', + icon: './assets/switch/team.svg', + }, + { + id: 'person', + title: 'sidebar.switch.person', + icon: './assets/switch/person.svg', + }, + { + id: 'print', + title: 'sidebar.buttons.print', + icon: './assets/menu/print.svg', + }, + { + id: 'settings', + title: 'sidebar.buttons.settings', + icon: './assets/menu/setting.svg', + }, +]; + +function Footer() { + // const { type, page } = useParams(); + const buttons = MENU.map((config: any) => ( +