From 5383c0dd6d4e80cf95f3f824bbb367242596a97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=B0=D1=85=D0=B8=D1=80=D0=B5=D0=B2?= Date: Thu, 23 May 2024 10:02:27 +0300 Subject: [PATCH] update --- README.md | 4 +- documents/DE.md | 4 +- documents/EN.md | 4 +- documents/ES.md | 4 +- documents/FR.md | 4 +- documents/JA.md | 4 +- documents/PT.md | 4 +- documents/RU.md | 4 +- documents/ZH.md | 4 +- documents/src/json/de.json | 4 +- documents/src/json/en.json | 4 +- documents/src/json/es.json | 4 +- documents/src/json/fr.json | 4 +- documents/src/json/ja.json | 4 +- documents/src/json/pt.json | 4 +- documents/src/json/ru.json | 4 +- documents/src/json/zh.json | 4 +- documents/src/md/DE.md | 4 +- documents/src/md/EN.md | 4 +- documents/src/md/ES.md | 4 +- documents/src/md/FR.md | 4 +- documents/src/md/JA.md | 4 +- documents/src/md/PT.md | 4 +- documents/src/md/RU.md | 4 +- documents/src/md/SIMPLE_RU.md | 4 +- documents/src/md/ZH.md | 4 +- .../achievements/more3YearsInProject.svg | 1 + public/assets/achievements/moreCreateCode.svg | 1 + public/assets/achievements/moreRemoveCode.svg | 1 + public/assets/achievements/moreStyle.svg | 1 + public/social/vk/awesomejs.png | Bin 0 -> 4601 bytes public/social/vk/front_work.jpg | Bin 0 -> 163691 bytes public/social/vk/front_work.png | Bin 0 -> 5440 bytes public/social/vk/frontend_dev.png | Bin 0 -> 4660 bytes public/social/vk/frontend_du2.jpg | Bin 0 -> 74789 bytes public/social/vk/frontend_du2.png | Bin 0 -> 5561 bytes public/social/vk/logo.png | Bin 0 -> 6593 bytes public/social/vk/take_off_staff.jpg | Bin 0 -> 88310 bytes public/social/vk/take_off_staff.png | Bin 0 -> 5414 bytes src/ts/components/Banner/index.module.scss | 28 +++ src/ts/components/Banner/index.tsx | 71 +++++++ src/ts/components/CardWithIcon/Banner.tsx | 27 +++ .../DataLoader/helpers/formatter.ts | 6 +- src/ts/components/DataLoader/store/index.ts | 2 +- src/ts/components/Extension/index.tsx | 2 +- src/ts/components/LineChart/index.tsx | 5 +- .../helpers/DataGrip/components/extension.ts | 2 +- src/ts/helpers/DataGrip/components/pr.ts | 10 + src/ts/helpers/DataGrip/components/tasks.ts | 9 + src/ts/helpers/DataGrip/helpers/tree.ts | 63 ------ src/ts/helpers/DataGrip/index.ts | 9 - .../FileGrip/components/FileBuilder/Common.ts | 39 ++++ .../components/FileBuilder/LineStat.ts | 52 +++++ .../FileGrip/components/FileBuilder/index.ts | 90 ++++++++ .../helpers/FileGrip/components/extension.ts | 64 ++++++ src/ts/helpers/FileGrip/components/folder.ts | 109 ++++++++++ src/ts/helpers/FileGrip/components/type.ts | 55 +++++ src/ts/helpers/FileGrip/helpers/index.ts | 12 ++ src/ts/helpers/FileGrip/index.ts | 56 +++++ src/ts/helpers/Parser/file_info.ts | 36 ---- src/ts/helpers/Parser/files.ts | 63 ------ .../Parser/{user_info.ts => getCommitInfo.ts} | 3 +- src/ts/helpers/Parser/getFileChanges.ts | 75 +++++++ src/ts/helpers/Parser/index.ts | 130 +++--------- src/ts/helpers/Title.ts | 12 +- src/ts/helpers/achievement/byAuthor.ts | 47 ++++- src/ts/helpers/achievement/byCompetition.ts | 27 ++- src/ts/helpers/achievement/byFile.ts | 81 +++++++ src/ts/helpers/achievement/constants/list.ts | 50 +++-- src/ts/interfaces/Banner.ts | 20 ++ src/ts/interfaces/Commit.ts | 16 ++ src/ts/interfaces/FileInfo.ts | 53 ++--- src/ts/pages/Common/helpers/getMax.ts | 2 +- src/ts/pages/Settings/components/MailMap.tsx | 8 +- .../{Extension2.tsx => Extension.tsx} | 28 ++- .../components/FileAnalitics/Extension.tsx | 151 +++++++++++++ .../Team/components/FileAnalitics/Type.tsx | 151 +++++++++++++ .../Team/components/FileAnalitics/index.tsx | 20 ++ .../Team/components/Files/FileBreadcrumbs.tsx | 48 +++++ .../{TreeFilters.tsx => Files/Filters.tsx} | 4 +- src/ts/pages/Team/components/Files/Table.tsx | 156 ++++++++++++++ src/ts/pages/Team/components/Files/index.tsx | 61 ++++++ src/ts/pages/Team/components/PR/All.tsx | 1 - src/ts/pages/Team/components/Top.tsx | 2 +- src/ts/pages/Team/components/Tree.tsx | 199 ------------------ src/ts/pages/Team/helpers/tree.ts | 66 ++---- src/ts/pages/Team/index.tsx | 10 +- src/ts/pages/Team/styles/path.module.scss | 26 +++ src/ts/pages/Welcome/index.tsx | 2 +- src/ts/store/DataGrip.ts | 42 ++-- src/ts/translations/ru/achievements.ts | 8 +- 91 files changed, 1715 insertions(+), 702 deletions(-) create mode 100644 public/assets/achievements/more3YearsInProject.svg create mode 100644 public/assets/achievements/moreCreateCode.svg create mode 100644 public/assets/achievements/moreRemoveCode.svg create mode 100644 public/assets/achievements/moreStyle.svg create mode 100644 public/social/vk/awesomejs.png create mode 100644 public/social/vk/front_work.jpg create mode 100644 public/social/vk/front_work.png create mode 100644 public/social/vk/frontend_dev.png create mode 100644 public/social/vk/frontend_du2.jpg create mode 100644 public/social/vk/frontend_du2.png create mode 100644 public/social/vk/logo.png create mode 100644 public/social/vk/take_off_staff.jpg create mode 100644 public/social/vk/take_off_staff.png create mode 100644 src/ts/components/Banner/index.module.scss create mode 100644 src/ts/components/Banner/index.tsx create mode 100644 src/ts/components/CardWithIcon/Banner.tsx delete mode 100644 src/ts/helpers/DataGrip/helpers/tree.ts create mode 100644 src/ts/helpers/FileGrip/components/FileBuilder/Common.ts create mode 100644 src/ts/helpers/FileGrip/components/FileBuilder/LineStat.ts create mode 100644 src/ts/helpers/FileGrip/components/FileBuilder/index.ts create mode 100644 src/ts/helpers/FileGrip/components/extension.ts create mode 100644 src/ts/helpers/FileGrip/components/folder.ts create mode 100644 src/ts/helpers/FileGrip/components/type.ts create mode 100644 src/ts/helpers/FileGrip/helpers/index.ts create mode 100644 src/ts/helpers/FileGrip/index.ts delete mode 100644 src/ts/helpers/Parser/file_info.ts delete mode 100644 src/ts/helpers/Parser/files.ts rename src/ts/helpers/Parser/{user_info.ts => getCommitInfo.ts} (96%) create mode 100644 src/ts/helpers/Parser/getFileChanges.ts create mode 100644 src/ts/helpers/achievement/byFile.ts create mode 100644 src/ts/interfaces/Banner.ts rename src/ts/pages/Team/components/{Extension2.tsx => Extension.tsx} (87%) create mode 100644 src/ts/pages/Team/components/FileAnalitics/Extension.tsx create mode 100644 src/ts/pages/Team/components/FileAnalitics/Type.tsx create mode 100644 src/ts/pages/Team/components/FileAnalitics/index.tsx create mode 100644 src/ts/pages/Team/components/Files/FileBreadcrumbs.tsx rename src/ts/pages/Team/components/{TreeFilters.tsx => Files/Filters.tsx} (93%) create mode 100644 src/ts/pages/Team/components/Files/Table.tsx create mode 100644 src/ts/pages/Team/components/Files/index.tsx delete mode 100644 src/ts/pages/Team/components/Tree.tsx create mode 100644 src/ts/pages/Team/styles/path.module.scss diff --git a/README.md b/README.md index 8682143..fdf558f 100644 --- a/README.md +++ b/README.md @@ -85,12 +85,12 @@ Read more about the format of this file you can [here](https://git-scm.com/docs/ #### For online viewing In the root directory of your project run: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### For offline viewing ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --raw --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git will create a file `log.txt`. This file contains data for show a report. diff --git a/documents/DE.md b/documents/DE.md index 8bb4948..bc2126e 100644 --- a/documents/DE.md +++ b/documents/DE.md @@ -80,12 +80,12 @@ Sie können mehr über das format dieser datei lesen[hier](https://git-scm.com/d #### Für die onlineansicht In der wurzelverzeichnis ihres projektes ausführen: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Zum surfen ohne internet ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git erstellt eine datei `log.txt`. Diese datei enthält die daten zum erstellen des berichts. diff --git a/documents/EN.md b/documents/EN.md index 518abce..02c1131 100644 --- a/documents/EN.md +++ b/documents/EN.md @@ -81,12 +81,12 @@ Read more about the format of this file you can [here](https://git-scm.com/docs/ #### For online viewing In the root directory of your project run: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### For offline viewing ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git will create a file `log.txt`. This file contains data for show a report. diff --git a/documents/ES.md b/documents/ES.md index 1621772..e0019d9 100644 --- a/documents/ES.md +++ b/documents/ES.md @@ -81,12 +81,12 @@ Más información sobre el formato de este archivo se puede leer en [aquí](http #### Para la visualización en línea En el directorio raíz de su proyecto ejecutar: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Para ver sin conexión ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git creará un archivo `log.txt`. contiene los datos para construir el informe. diff --git a/documents/FR.md b/documents/FR.md index 5768983..c085c6c 100644 --- a/documents/FR.md +++ b/documents/FR.md @@ -81,12 +81,12 @@ Vous pouvez en savoir plus sur le format de ce fichier en lisant la documentatio #### Pour une visualisation en ligne Dans le répertoire racine de votre projet, exécutez: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Pour la navigation hors ligne ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git va créer le fichier `log.txt`. Son contenu est destiné à la création de rapports. diff --git a/documents/JA.md b/documents/JA.md index b91b98b..36bf7de 100644 --- a/documents/JA.md +++ b/documents/JA.md @@ -81,12 +81,12 @@ Alex B #### Дオンラインで見るため プロジェクトのルートディレクトリに次のコマンドを入力します: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### インターネットなしで見るために ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Gitはファイルを作成します `log.txt`. このファイルには、レポートを構築するためのデータが含まれています。 diff --git a/documents/PT.md b/documents/PT.md index 1140ddb..ddae08f 100644 --- a/documents/PT.md +++ b/documents/PT.md @@ -81,12 +81,12 @@ Pode ler mais sobre o formato deste arquivo em [aqui](https://git-scm.com/docs/g #### Para visualização online No diretório raiz do seu projeto executar: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Para ver sem internet ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git criar um ficheiro `log.txt`. Esse arquivo contém dados para construção de relatórios. diff --git a/documents/RU.md b/documents/RU.md index 4cd0099..8d61992 100644 --- a/documents/RU.md +++ b/documents/RU.md @@ -80,12 +80,12 @@ Alex B #### Для онлайн просмотра В корневой директории вашего проекта выполнить: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Для офлайн просмотра ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git создаст файл `log.txt`. Он содержит данные для построения отчёта. diff --git a/documents/ZH.md b/documents/ZH.md index 54185a0..6423f18 100644 --- a/documents/ZH.md +++ b/documents/ZH.md @@ -80,12 +80,12 @@ Alex B #### 供网上浏览 在项目的根目录执行: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### 在没有互联网的情况下观看 ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git会创建一个文件 `log.txt`. 这个文件包含了构建报告的数据。 diff --git a/documents/src/json/de.json b/documents/src/json/de.json index 66ddc52..1ef1ae5 100644 --- a/documents/src/json/de.json +++ b/documents/src/json/de.json @@ -83,7 +83,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -91,7 +91,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/json/en.json b/documents/src/json/en.json index bfb3e32..219e3c4 100644 --- a/documents/src/json/en.json +++ b/documents/src/json/en.json @@ -86,7 +86,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -94,7 +94,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/json/es.json b/documents/src/json/es.json index 785f28d..4fd33e4 100644 --- a/documents/src/json/es.json +++ b/documents/src/json/es.json @@ -86,7 +86,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -94,7 +94,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/json/fr.json b/documents/src/json/fr.json index a90ca3f..6d31ccf 100644 --- a/documents/src/json/fr.json +++ b/documents/src/json/fr.json @@ -86,7 +86,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -94,7 +94,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/json/ja.json b/documents/src/json/ja.json index b124d03..d8a33f7 100644 --- a/documents/src/json/ja.json +++ b/documents/src/json/ja.json @@ -86,7 +86,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -94,7 +94,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/json/pt.json b/documents/src/json/pt.json index 0eab9c6..7bc3d34 100644 --- a/documents/src/json/pt.json +++ b/documents/src/json/pt.json @@ -86,7 +86,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -94,7 +94,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/json/ru.json b/documents/src/json/ru.json index be3eef5..fa24be3 100644 --- a/documents/src/json/ru.json +++ b/documents/src/json/ru.json @@ -83,7 +83,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -91,7 +91,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/json/zh.json b/documents/src/json/zh.json index 3577b7f..50c0e86 100644 --- a/documents/src/json/zh.json +++ b/documents/src/json/zh.json @@ -86,7 +86,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" > log.txt" ] }, { @@ -94,7 +94,7 @@ }, { "pre": [ - "git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" + "git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:\"%ad>%cN>%cE>%s\" | sed -e 's/\\\\/\\\\\\\\/g' | sed -e 's/`/\"/g' | sed -e 's/^/report.push(\\`/g' | sed 's/$/\\`\\);/g' | sed 's/\\$/_/g' > log.txt" ] }, { diff --git a/documents/src/md/DE.md b/documents/src/md/DE.md index 833e823..d919499 100644 --- a/documents/src/md/DE.md +++ b/documents/src/md/DE.md @@ -45,12 +45,12 @@ Sie können mehr über das format dieser datei lesen[hier](https://git-scm.com/d #### Für die onlineansicht In der wurzelverzeichnis ihres projektes ausführen: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Zum surfen ohne internet ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git erstellt eine datei `log.txt`. Diese datei enthält die daten zum erstellen des berichts. diff --git a/documents/src/md/EN.md b/documents/src/md/EN.md index bfb38ae..1816ca2 100644 --- a/documents/src/md/EN.md +++ b/documents/src/md/EN.md @@ -51,12 +51,12 @@ Read more about the format of this file you can [here](https://git-scm.com/docs/ #### For online viewing In the root directory of your project run: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### For offline viewing ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git will create a file `log.txt`. This file contains data for show a report. diff --git a/documents/src/md/ES.md b/documents/src/md/ES.md index 6c712ea..eedab4e 100644 --- a/documents/src/md/ES.md +++ b/documents/src/md/ES.md @@ -47,12 +47,12 @@ Más información sobre el formato de este archivo se puede leer en [aquí](http #### Para la visualización en línea En el directorio raíz de su proyecto ejecutar: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Para ver sin conexión ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git creará un archivo `log.txt`. contiene los datos para construir el informe. diff --git a/documents/src/md/FR.md b/documents/src/md/FR.md index 1057fda..b82d86e 100644 --- a/documents/src/md/FR.md +++ b/documents/src/md/FR.md @@ -47,12 +47,12 @@ Vous pouvez en savoir plus sur le format de ce fichier en lisant la documentatio #### Pour une visualisation en ligne Dans le répertoire racine de votre projet, exécutez: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Pour la navigation hors ligne ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git va créer le fichier `log.txt`. Son contenu est destiné à la création de rapports. diff --git a/documents/src/md/JA.md b/documents/src/md/JA.md index b72e8dc..eca6855 100644 --- a/documents/src/md/JA.md +++ b/documents/src/md/JA.md @@ -47,12 +47,12 @@ Alex B #### Дオンラインで見るため プロジェクトのルートディレクトリに次のコマンドを入力します: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### インターネットなしで見るために ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Gitはファイルを作成します `log.txt`. このファイルには、レポートを構築するためのデータが含まれています。 diff --git a/documents/src/md/PT.md b/documents/src/md/PT.md index 635398a..73e56a7 100644 --- a/documents/src/md/PT.md +++ b/documents/src/md/PT.md @@ -47,12 +47,12 @@ Pode ler mais sobre o formato deste arquivo em [aqui](https://git-scm.com/docs/g #### Para visualização online No diretório raiz do seu projeto executar: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Para ver sem internet ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git criar um ficheiro `log.txt`. Esse arquivo contém dados para construção de relatórios. diff --git a/documents/src/md/RU.md b/documents/src/md/RU.md index 0f1b08c..0031cdc 100644 --- a/documents/src/md/RU.md +++ b/documents/src/md/RU.md @@ -49,13 +49,13 @@ Alex B #### Для онлайн просмотра В корневой директории вашего проекта выполнить: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Для офлайн просмотра ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git создаст файл `log.txt`. Он содержит данные для построения отчёта. diff --git a/documents/src/md/SIMPLE_RU.md b/documents/src/md/SIMPLE_RU.md index 56e1161..30b884a 100644 --- a/documents/src/md/SIMPLE_RU.md +++ b/documents/src/md/SIMPLE_RU.md @@ -50,12 +50,12 @@ Alex B #### Для онлайн просмотра В корневой директории вашего проекта выполнить: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### Для просмотра без интернета ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git создаст файл `log.txt`. Этот файл содержит данные для построения отчёта. diff --git a/documents/src/md/ZH.md b/documents/src/md/ZH.md index e9a2ad4..60ad476 100644 --- a/documents/src/md/ZH.md +++ b/documents/src/md/ZH.md @@ -47,12 +47,12 @@ Alex B #### 供网上浏览 在项目的根目录执行: ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt ``` #### 在没有互联网的情况下观看 ``` -git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt +git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" | sed -e 's/\\/\\\\/g' | sed -e 's/`/"/g' | sed -e 's/^/report.push(\`/g' | sed 's/$/\`\);/g' | sed 's/\$/_/g' > log.txt ``` Git会创建一个文件 `log.txt`. 这个文件包含了构建报告的数据。 diff --git a/public/assets/achievements/more3YearsInProject.svg b/public/assets/achievements/more3YearsInProject.svg new file mode 100644 index 0000000..d328cc3 --- /dev/null +++ b/public/assets/achievements/more3YearsInProject.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/achievements/moreCreateCode.svg b/public/assets/achievements/moreCreateCode.svg new file mode 100644 index 0000000..c237f81 --- /dev/null +++ b/public/assets/achievements/moreCreateCode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/achievements/moreRemoveCode.svg b/public/assets/achievements/moreRemoveCode.svg new file mode 100644 index 0000000..9e9fbc2 --- /dev/null +++ b/public/assets/achievements/moreRemoveCode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/achievements/moreStyle.svg b/public/assets/achievements/moreStyle.svg new file mode 100644 index 0000000..a087a39 --- /dev/null +++ b/public/assets/achievements/moreStyle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/social/vk/awesomejs.png b/public/social/vk/awesomejs.png new file mode 100644 index 0000000000000000000000000000000000000000..a98f1106edfb9cc098b0c9175e6c2bdac50555ce GIT binary patch literal 4601 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 literal 0 HcmV?d00001 diff --git a/public/social/vk/front_work.jpg b/public/social/vk/front_work.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aa0e46c2a49792259c99e3b982af79766e7fd919 GIT binary patch literal 163691 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

F4rf)uft8<|*clK3I}e$jSczS)MzR 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

  • TV96q!+KQL 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 literal 0 HcmV?d00001 diff --git a/public/social/vk/frontend_dev.png b/public/social/vk/frontend_dev.png new file mode 100644 index 0000000000000000000000000000000000000000..5b8ffa1931deb9f0318c711db305bef1d8e3c11f GIT binary patch literal 4660 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

    {}6vG9lSbWQj0#N!i!24zdq3VO-3Zp0n@$ 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 literal 0 HcmV?d00001 diff --git a/public/social/vk/frontend_du2.png b/public/social/vk/frontend_du2.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9e308b47db0695d03da26c0d79407c6aad4b7e GIT binary patch literal 5561 zcmZvgXEYpKx5tN&(T9jIdWl{lj6Oqx=smhHMvopX45EzQMUN7Ls8OTWAi5|a(R(*~ zFTwS^cdh&0d)NEnl)ctI`+PWS|M&0ga1AwiVghOc002O&s35Ba0APXc_YQau@8>p) z)tUPR%T-HW8c;SwyLE5iSie+#2>?{a68=Tt-rM-j3I?tKz$3SR2G+b4gC_t$p{6MN zQrpvHH}lSkT(Ro=0Hf%ovcD>{JML7xZ};J&BN9$BY4%0nhYxq-*TWZBx=7l@RzDe+!EdP%a9YpgRwETzk5EJkc|vKa7Y@Hi$;){rU0!h8sN2IPJQo9)g7iC z%InIFsW5~qbc@%*I}=iXLzE$6MsXXJZtuyT_zv|j?LenPs>DWzU#Qe80D zkbDT@7kd{%nd~TliMo^j+rZ9{*9mguy`;caJU4IqpH86jf<&!p!|Gpl*L($sA(l{7 zR86Re>HMYR7^+2%FecNfQdHa@#j+uoK;5t{K5Jy;+&Xpg9{&BfPOh|<$|ZjtI)1X` z$q?<|*B*jG2n54_3lN#((11b^QKl>H{840J_0)Wcc5;idZ63p8woK%R6N7ZgR1~a0 zK+ibP#S3da(tiziUU4iPy&~!6O}E($OTCy!HE7}XD+{I8t*-TZf?&;|bH<)^PLd62 z-9enH4-L7KTlhHYR}GsjzhOq(kt$lr35n*U#jZuRFI6{JHZiK5L0d&a^d0=!ADf~_ zoZ3P*h9b0U7Fi)8R8vYObu_b=s-Yj6EN!xLFtV!}QxlHpsNC(fUlKtr@Y z!jmfpmGibB5GJR2%8mo(Q>c;roY-aBg|;hWuitJ9Ic5q~+pqW%cP=E?s_!rMS0oJ> z_}Cs_n8A^nw{F--NWbM9E=I@g^)jg@dmw$-PYG%Q^~X<44~HH^W7sPzo`GIPyECqi zj@)2qNOAzjr!>yjd*a&5UxgHnV{8>DQ}!kOXBx#<-#FQI?I0Ch*Vmz6qj88rH7X44 zbC-Y=ehy>$hZgI)wTrdm3EKi~9wJxq*{>HhL2`4Y_RKrQ>qJ#K1&u<&%X_X7rm~t>r%VJF? zigP-*h3QvXB;ay!t3huQq3-?U$B!V*&aF+G-Ny~d|ZY_l#v^^-5lZWaPmpP zhphanw6Y*xMTju97?SM6uN2h%gA*yumxL@@ak({l)JMzipNolsOeY(bLAMsNXWhBl zK@Ihx#|8OrG>61MFEyc8PQMpk)d|ZPwB=&Gd?qP7Up0tfg{F+cNH|Sh&qprVm{h6q zgAKDT09|3DE-vFix*EyBxE$$2D|w9a#qSNaYBs%y@}$PhUI+-&Lq==x>sIJNJ*l*v zS*jDS&NX>M-&km!B?mOkJBE0xxPB?1=a!r8zaeqUjHPd{dHgmz&f4$2NbSJf9uC7Y z_Mo0hbA94!;V%}5VJVfk81F+1xlmqY`CZ2%X)ag~=J2)3FGD?*qiL~_cur#`owLO; zR%nsx3T>C(KbBDe^&WwRIfdzf-nH_#xbRSPtbbW>>@h5mrfu>4LM#5IFAb?f^FC}z zIzgu^PLi5SLfX-(fX>m2{7WpM@%7|REx8Quup})_b@a!_AqX~?JY)(5dDe|dH?di- zJ#}nWT27kCN88GA&;AcV?s)O-vogXQt77(aJsOYcUp(pL=ha3AovQWQulY2W;@YLkDTuX6YuqoT>sQv}GOwXY2d7rg^GnGk} zBw?b~c3*yNj|xx#o2_Rs`xlFOEVuWhXR6Dr;FFh?PVq2Y!Z)|3krm%KZkJtWvS+rlErPD>j-swT~qXY&z z{5jQ#6?CKvJ5N`6RLW*r&dZ`^l7!NmwCqoJ&pjPVqq+k4{w|k3M_sB&Xd?5#KWy9{ zSD%=!pz(=~6R}JcmhLqSOxBwUjp=`QO0^X7nX_ExGXH5SP_A(0)3}+u4EvPUxNCfi zpLt`bWIXceHl4$Z!WfUd(=C2l9GY0Fj2$QLTz~urRkir%np-J)T!j}}bEuFo`>Q%GVhzqgOlR}WnuoM(X5C>6eyAZ z32WkUzqrW?)~w7FQghfEaX5clCjJBnjtj*SGlLo5;3K~#eq*!ndA+(Lt1f?)c|Jn# zdhH78`MQzI90BL}{)O98U%&aG&Ur<@bCD+#EnP-fgP=%}I0d)6{(+bheDNH9%3MFz z&~~F4xGx=YfW2C|heE;AS+}&PaNu~szo3k(n8R`FVp=&*+b0bbXPQo_n z6q{O8c3bsM*;xw{_`6H1ADKddB#UGD^ZJX_TsNVO4^M{>9K0o`ZavJx*0Jkzg$*Os znLvXqIU~(Q^CJqg#^O*Zu|3HJJyAT>EajMBX8&Uwn;EHKQ185v>Zm7&$$K?tF=5=9 z!<6U=>M@Kn(*tH^0};dizH;;l2?FFztmH(c*LR;Do9>9gMWr&V--3)t%LJ&O&zX2D zl#Zi^pzkzX4zN}fpUcm9<(^L~BX!B#1k7USvRhRAXvm*E7S&s6$l2K(jH((Du(LPS z(uHJXqAo7q7SOp1*j%?i67vF$D0F{yCF!}+?NW48jqC|zc{;jPFW``?V*PeVA)39% zEW1^Iq6|&TPW&$hSrq#>iP%G_LY@ak13UTU{smQd!t_L)RPEg;1QpAqC;$J&mWC$3 z8+DVcA$}EmPbb3rBL@}1|H<$F2Mr4^JMK+NHa%A3B_*9i-xzZL5)w3CEyg%IIbbys z6WoC`rabw@ow({wi=I-fU^P8kyi~D#WuAja4FW6e)ck{UOeO-{R>Dh&f3E#+{8I_# z%}U28Z@c12#Mb&6tQhNwDZn)yn+0C}B?)-vJ;M6gXew~V-M_`!rM9fyx9>b2Mer5Y zjCFh==IM9qO}Own4t9VQ z_#pEgepX7J32T=ux$y>{30b)3QXS}EX@zn_kH(1V4oj~sI|p_No`)=SdP5~s96Ppo z35S&X;$2w@TRXd_z0Vd7j$?dHN?b|GN*97K8ze1ND=7^C!U1>v%_Y=DU5M!UiWp&X z+a0~qXJB~j?vLI@Wiy_#HI;{cN!#rGUE+Sbr;PByc6rV%m$GU+Ze>Ta*iCC4W<|Ts8fidk7nkk|JS_pVawhB=uD$;pv#?BdEjy>HYoW+QuD&Fhr zTtuy<4P_MRhj+R8XQI^#%P{7vgV@C4Ov#3igF=``A8|j67!dP9?r`W-J;3hI(hO1q zREcV-!%is_be=9fZNL%v;~2<_@d!jFJx(Jw`bu1tb76{uEIb>S7zxJanKuj++Yn)u zcZgpRgj3~lif|?*s(m1LKB*1fz#g2)Eq5|P`l&BzR*mtU&4i9T8_(9Q@nch>Q2OkN z=iQX}8UpJ2c;l_LIc{m+pq`4ZB4!*aH6Nb0YmXTxzq>taU|x-WKfrVgpMmNA~B3@^CQkjG_!^xv>Nev6qfrXYXSnt*7@7Im|{!mXw>M z4c%Q9+Kobk&vD);@HW)kl*?^|W-^ zk@$ofa+G6S3EsYVbV!a#&!Ew`-8?2Iisf41DN#TbFZ{#MBN<^+}7KKqyq7Ml;WZlLF`%hw}!Vw#MWm7Hj z(AMO`?#@jY0@ioymg@tUoWZ>^iHDNiS;{^Naii{v(t8PrYWt)pPyOzqef-+^&85uH z#OyO(qYKj5xY6vL}Sw3FOPDWeafj#Y~L?nc8&Nc!z^&g+zSYm#CROYS9i z#?62-W%4k{--i8h^}1F_PbGz@JQYF1+z+TxqGPWpsM4ZZ0X`?9z?aAH6Mk?@u(_l# z!S*AL{lG{UN%5*11Kkv&7Rtei7JQ(ThlKNK?4*V1S<%n+>jCOkg#ZxfQCoTJn@G~a z&)&Pu+VJxXpGA}18tlSmnfbnwp~G$VB+3H5pt30KdWYwS?({5f^4)x$C6GrW?;<)l&pA#+#-Dgx57wbDkjLljbxs}k`DZN*I9d!KlzQ{6`)%<6WEtGG z;%v>zLO+|+x|HE=Wz&&}NPYW18lOrwg0t3C5F1Kj5Qa+e90G%@NUc4FP>9q+)8YRh z`>&E0ERg}fKvj^G*i|pZcwl~+&|TF4 z=eoHk=cVKtbWL~v5R-lI|4`8KLbmP3kf(fjdzXX;WX03`I|cn^X8X%w6vKP3Ry&S2 zZ&28~GL@mh$t43J9fBNSxnk>;_Nd^N6l^J+GkyNtN>~l#T#WV%Kfw5=L3zSZODxJP6>zLz`Vyx$d4f$?nN=&|*Mt$0E?L5-! z`*~Zs&n=?W`l(8D06`gnzEY^4*_83K%l&i_&7w}Rx3Ka4bXtVKh)-w}xSI5kT(u=T zQjNoV?gYDKUaaEDK-`@;o{{=$v3os&BKx{EV1usHy0QCoKx^~Hc^V*qC*oI61b+{2 zrzzmkDF#Rz-&uNp|_&}r&N}L&}w2t2W0)s9Fd9fK5mpp!Ej?K!eIJ{(KizQ!lC}1{k{1?t;b%raX5gC6Jlx>k@k-#4 zmRIY_kk8OKTLMl+zTOHdI+v~%t5n6`=H&Rp5?t^;*ysM6_Jk9D!^Xqi9XUQz8WDF^ z9yR;&{8O=KO1n3`N0~TIn{40~a5)3B)crg0U`Xc&Npxhbyt2qMF@2=VQ6*mRgWAz&#nG^1l*W_rRY};a@9i!A#5*y+J5rjaBm7M92bQ; zQgp*ZbEf03@i3)DeO@*feMi(=O+~_NG%N%CZnGsHQpJ#+$@Q}NErR`UEUGB@h93*ajiRB`xl89*{V0`Ie7+L=ZQ|Jk0XJHhMAPpXiKWL;L zw8HZU!pI*Sf=Uh4t4Uy~uSFrOu9x~SbvN(!BzlRT-8VBl!6(iK z002(hGrD5|0PqO@7PDhVfA6Hor!ammJa7xc+W>UG#OiP5u!kO44*>X<@CWDNk>C39 z=SKE$06@s^Z{eAFA{7Jxh}qn`qh}T5Od)vtOy5QR+{!z=dmH6=*FwJM*!#!I^N=R8 z{n=OFp3~YZ7$y{TdhEsTM_mSGpY-6N3PC;QDaolh!W!+Efwgj0 z(^QjNwh@`9o`<3iK$@%W!3v5AZ?G;s_0F6=BY_HozZ4T<)d#R;2k}V5`Q}R8Vvq6t z7Yv5G2lYGG&EiSu#xggWwnHdi2{gl#($i8>ku&Y@6&M%~*8>(8JQ-FcQ!y_USNh_z ziF|wB;kj!Hnsft{uNl}K+88FxN^8c7IC75*vNnQ8$Yo{_Y`#Q;hR#6FKJk92+ev*AnfD4*0oG4J;Fq;pAB3L=$>4-Iz$si zYC_a6CDmYYsdh~l)u(s%U)G35JXd@>s}_!3ENjfLPo+~KHV90`j^j9tpgo1`x`uKW z(Sin>_A2~J#o`uY(^1no(ZrgX@|GdUyJqII=V28n@p@dCd?;pTC2N|wk+aTU{ithf z?sGxbVPyix0`27dk?~|+Dj+{;bFjbkh={nlj;^vvH7@s7Xvm+vyxhmU+z9vR6+A() zoy|f9YPC>ndeq9%BHxRr&`V{XI8p?@O@=9QU(D zJ;K|>**ZUP1be1++P~J(;;=u^r2$roRnex5%U`;I=!-B4JZ?-it)mP_d$n%^$oE9yBt!#((n7i7~+I7u~O=Q3Yt%kA&u5S)v;%|XHlTd@3unC<=S z@_sB^ssR|fmK^21T%Qe&&`^#wksl6S4qo;4z%9fzvGC?JmD&eG@l185=U2DsU0vn_ z)*ETz&y$ES*0&~VPjC6%pT&=x`?nVflsN{*h)5Ssg_Clqi3Q|qGE{~R(p)DkG4NnW zYUbypZqMY~@@`9?2xOm&u4gqTsl0GbT7{k{-xwr3#eqJ0R4A8S!?jAhRjC|H=hg{TU`2U*hwabG?4CEe+)}}~s?FR%yT(Ro z^T2fAiaUlEirutxOdQx3JyVlqk3iZg3v$GEzmMG_tiH39icnCk$WE4Ax1P&s9guB6 zwn6I|3i~%cDuga|{ME2(zeXB3LiRVF3H)5~tU2vUn7KK2F^$|mZ_?4G_Dx%w z+Hd-+q9Kb71M$lJ0Sc|h?C2)61k~V2q)H@KededSFH2BfMIDGBUqM*!iF7|RDeR5L zQCtsFZ?apr|60q10X^*ZF?dw=c(ndS&4>24^M~AHbw5T*t|w~)ZZtr>5{7Tar4=Nh zU7eDiHJ7cfq-AEybo6I_GAUaR;diN7>?&EGJ}9}WVHIG{a9~LBJIV4#4|xUxXk?Mk z@9_O!RoL7$CGCz^hNr3N&;VS83!X$irN-tKWZ}^@9T@x!bQJ?DUQjS0P$Oa*Xpd z^lfD)XYUVXzQfbF+~qCv(F}!buo-oMMA>L4gYxtJN?%vRY7$S@UHJn@1Rn!h6SVjm zh%WV%dN?^=eqec(wKkCwYfI|s^Y(rEtwkXDt)Y;3ghV(;wVdN{vP<#01KuBh@?gYT zHx>3^m8Kt68mZr>aG12*?_iLLK29jcbGK(xGHVH&8|803mX|U1szNUqsg2Y8@!j3d z6_t`qbo2WTCGB$xClZy>F22&fALi6=6STZu%l3gk+CO+hji&V&P`fP$yKGCA& z-0!Tej+u3M)CO(2q_M_&)GpnLc3d9uzr=3PkSa@EJ=fo|+!j%}pGzp;>{XrdFeS-z z2zVM;;=JBs$ODtbv<%IB%1RY1?wwvtn22MDW|F01yMC8M{?g-aN|cF5<5@@Fi5ZBW z_BIRU+u;(BiGs^xRq*M5v`k4RTVj&Qbj=Cq^ZReJv!BbVlJD=HK3c1{1o8(hAZq5F z7osw%ll~m4T-qdk!24teYERX(8`N~FI&2MNh`$1jQ5i4!I^6aeEOa0H>8u%v(f=Gu zMB6Gg0JY|?r4#@&1>NQL`)zv$Yy?{+{ATSq1Nx|X8{OdRcRpcLzaA7~1!g;nAzc-I zQFQ`x&lT4(jhO`tH@90hD|eP@^E<2a?Dh%-64&U{`?{^i6F#Wbug~^UVaziKGPnf6 z#VvvqscT1$c5#2o5uvDh;^<5FuHZV{Ua&0ivESMu`;1^G&HGR1x1(uW!@Mshp8~iE z9Ct;hgsF-mWeCb=7Zh7t9wT*2ZBIL}W>Qkp<5M{0P;kpkVDz*48f@S~9B1Ka9fE+? z;+8i3`s^O?-HzMfZ(lpAkz6po)poAEO;o5LC+9Ut-4S?6ch{I&^W|!vVSNGoRMolm z{(C^#eQqs-106!MytV@fjJfjm8Rl^RMP>L6-FOooa;SrH;Li@oW$iU8QFKB+ zHka4?=Da9!wC}Pk@w$+udL(;$_MdZV89wv&*V6~*U6Z;_6v!}6Te1l zw-n?tCI&v-GgWU?_s08u-5XgdOCwWL|wXTZX@`C4Kz z&m`2Q?(TyI#{5M4Gnzj#N8OXQE*XN^61hCCTY@DD=*Klh8w+fuN08|>o#}=#H77al zM8`w^-Ro}*&mT|pX~DiRQl^w?sWftX7nLjJI|B7N9)gZ~0oM>-3;PMvD}9r(JE$Nk z6Y`{V7xIC5GEZL1(@SHp`Vmw6*qjH%v7khJFTjyAaX}ZbZc=Zf@_y7O;Rg2gmPSMr zbchh?h!`FAstKF@u)ltv091P+cVEzW=nP$k=u`Pku`l+&q zv`j;8WHUV@uC8KBv){|%F4M8G*^lAu>ZZ^TV>2)>Jbp!NjdYVWzrS>ny zMxbM9FCEJpK64RhwjikCWA4n zU4oqEw!II=-JvZJhWo4IN|us6&BT79WcQSdQ|e*3ZE~tcxPy+PvC_Tt4`9#QuxfP- z)HW+^&sgFRVGk>4noI6Mu+VS}K==UPEflVAg+5^koUm zK3>_z9QjV=o#Xi)wFz*&9R#>4eG`!KrzF7im>@tliWeZLr z$Lgb;W?Cqal8exIG>%5%9#75Q;N(pv8}BLA$w}@k{a3B=c#hz{+#!j z<{}!_w217ycd9z%{{yu1Zm`I_(5q~-i_#<%R$6koH-J;rO#ad zkTp|B)lx~QN~n?4TJJAMzd5CFqG{IO4ata$)R&SHSEMrZs7;8J;Jce?uW@luLfpY_ zBUp2jH@GQ7_vKp>*2DncqReXvSCP8u8S>tfUUXlp^rArUQXTf}%#Q=jvP ztX+}MBN&MvcLN!6{B6unW}l(Zfhg67DFA;VDmg8zCx$6mtWUdWo#pS=UKzLgM>C?M1bNarGOQ4 zOSQVJR53AA_-wc6ae#Elv1-XhI;b|{thh1j%ddIf7?I{eop?*Bwv^3;)NSc}e4SiE zD_F|9m`Gi{*CIPzY6Y_`>sARywyyTrMMY;3TI!hYEbH{mB$e{hIH^mlu!(ISpT+cb z==E?Ai2kz`SAiL2czhi|8cY`$1j&wfNvw4gdMx8JyQ?Cl){DSn=U=P(al&n|j2+UP zvpn(Urg=(*&IlwKWgGTfn@d?%nIs$VZq2_}0E18zkD-9mZw$x0*Tl35(dg z%4!o`V5@Td-2YB%*e&|O$| z1Xp+^W87TXq%4eMLS9f_vcEe+PI%pl_B;4A$H>z+@Ml{JrwGGxn~nD!{D^y)8B}JufIyEddGHa4R{=5dZA&oW zFSt_u(S-gR{V3A~NAO_sQ>K$)eg(_FosQNuRgJF6OK#JK13H4UJT#(P{4} zREl*)F-if~Ux?CdSx`IvWBT6XWP$EA%KLv_T>B)j&|65Y(r2Z-(v;V0nje?7Stk~; zP`LZa!?0`(m~N^HTB$tdqjw{``R;UxY%TZgkMfwlqkUi~Cc9p;Jg^R^4s-TbjM?+R zDR;}%erT1q@GnJovSqi;-nA}V4`Wki6DSrcy zURcq@PU*%=aM!u0?Xn;@_X8s;HP3OVE{9kmj9cb$z4>=5O#uOa_t3;7rbM*Bks@Ut z&C$eTb0_JUm2H%|O?``(x$%!rO2)Uky?9~q$=v-P!J~-}{Zh1st}cVG95H@i__o?B z_|7W+nc0y8I519BFl&nsEm#R|^W69lakEA`qw<{Y(uJmMom6i#fgjXb$T!JVjrZEV zUxiLI(fE+X>H2!DJ}L)BOKJ8ym2UR5KDV&|^t*)=cz)~-tYILD*4yHt#dt67knKt! z@9KRaYYCw(Ep))UkX)~H>q%<5L;|$RE4V7vQu@k=HO-SpkDNv9t)#QhW7|H?6_zZ= zet{%-uF%&zJvv2fOPd$xBl2u0WX_Q3u$*zH3`FCf*JGZYA8&VC3}`XTbx_ zluro-Qe7c}0%dKi)4k0?Wr!OZ;=K=42Eo9gq-T>7=fPu8_~bQzQ4(< zWp>!*Bic3a#_-~ZbjL%lz#JGzXiiK;*T=}2B*E7v_RMqtB*TTy5#8!qPluVG?Zm6L zXI#k9cc6aRuM;-F*4y5lb zRCU{E7u_ag97E>Ue#uPF2|81+ylcyp~%pJKw6^Q!nc< zz)ke`B$wYU(SjnkN8$;HFA!} z1f>O%I2&SX=}-|%r+cipLnyxk^bf3aE{rp;{r#Meo2Pm;KLy&6DPqgc-_~EF*J5Dw z>fibP4Q`2B37HlsPAu60-pU^6?spAgSBWM2`7WWlX9Pl(%$-!Bm+QusDo*U|T47=! zvQ5_M`%O`Qpf_zS_qoFUi=D7r;FOvpeY9 Hu95!*cWU9A literal 0 HcmV?d00001 diff --git a/public/social/vk/take_off_staff.jpg b/public/social/vk/take_off_staff.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d120a82d79ca90b4e6b9343f567e774f958b7107 GIT binary patch literal 88310 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 literal 0 HcmV?d00001 diff --git a/public/social/vk/take_off_staff.png b/public/social/vk/take_off_staff.png new file mode 100644 index 0000000000000000000000000000000000000000..4d702fe70b0af0b111691cb41fc1ad43d56631ac GIT binary patch literal 5414 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 HY!Lqk7HE45 literal 0 HcmV?d00001 diff --git a/src/ts/components/Banner/index.module.scss b/src/ts/components/Banner/index.module.scss new file mode 100644 index 0000000..699fa71 --- /dev/null +++ b/src/ts/components/Banner/index.module.scss @@ -0,0 +1,28 @@ +@import 'src/styles/variables'; + +.banner { + border-left-width: 1px; + border-left-color: var(--color-border); + + font-weight: 100; + + width: 100%; + height: 100%; + padding: 0; + + letter-spacing: 1px; + white-space: nowrap; + overflow: hidden; + text-align: center; + text-overflow: ellipsis; + text-decoration: none; + border-radius: var(--border-radius-s); + + color: #FFFFFF; + background-color: #A7B6FE; + //background: linear-gradient(135deg, rgba(64,117,252,1) 0%, rgba(172,179,246,1) 100%); + + background-repeat: no-repeat; + background-size: 180% auto; + background-position: center center; +} diff --git a/src/ts/components/Banner/index.tsx b/src/ts/components/Banner/index.tsx new file mode 100644 index 0000000..419b847 --- /dev/null +++ b/src/ts/components/Banner/index.tsx @@ -0,0 +1,71 @@ +import React from 'react'; +import { Link } from 'react-router-dom'; + +import themeSettings from 'ts/store/ThemeSettings'; + +import style from './index.module.scss'; + +interface IBannerProps { + className: string; +} + +function Banner({ className }: IBannerProps) { + const config = themeSettings.getBanner(); + if (!config) return null; + + const { + ref, + link, + title, + banner, + bannerText, + color, + backgroundColor, + } = config; + + const props = { + title, + to: link || '', + target: '_blank', + className, + }; + + if (banner) { + return ( + +

    + + ); + } + + if (!banner) { + const textFromRef = (ref || '').split('_').splice(1).join(' ').toUpperCase(); + const background = backgroundColor + ? backgroundColor + : 'linear-gradient(135deg, rgba(64,117,252,1) 0%, rgba(172,179,246,1) 100%)'; + + return ( + +
    + {bannerText || textFromRef || ''} +
    + + ); + } + + return null; +} + +export default Banner; diff --git a/src/ts/components/CardWithIcon/Banner.tsx b/src/ts/components/CardWithIcon/Banner.tsx new file mode 100644 index 0000000..d125375 --- /dev/null +++ b/src/ts/components/CardWithIcon/Banner.tsx @@ -0,0 +1,27 @@ +import React from 'react'; + +import Banner from 'ts/components/Banner'; + +import style from './index.module.scss'; + +interface ICardWithBannerProps { + long?: boolean; +} + +function CardWithBanner({ + long = false, +}: ICardWithBannerProps): React.ReactElement | null { + const className = long + ? style.card_with_icon_long + : style.card_with_icon; + + return ( + + ); +} + +CardWithBanner.defaultProps = { + long: false, +}; + +export default CardWithBanner; diff --git a/src/ts/components/DataLoader/helpers/formatter.ts b/src/ts/components/DataLoader/helpers/formatter.ts index 850c6a7..c741980 100644 --- a/src/ts/components/DataLoader/helpers/formatter.ts +++ b/src/ts/components/DataLoader/helpers/formatter.ts @@ -73,12 +73,14 @@ export default function getFakeLoader({ const totalElements = sortedContent.length; const totalPages = Math.ceil(totalElements / size); - return Promise.resolve({ + const response = { size, number: page, totalPages, totalElements, sort: sort || [], content: sortedContent.slice(begin, end) || [], - }); + }; + + return Promise.resolve(response); } diff --git a/src/ts/components/DataLoader/store/index.ts b/src/ts/components/DataLoader/store/index.ts index c2d5ea0..448b094 100644 --- a/src/ts/components/DataLoader/store/index.ts +++ b/src/ts/components/DataLoader/store/index.ts @@ -78,7 +78,7 @@ export class DataLoaderStore implements IDataLoaderStore { makeObservable(this, { state: observable, watchedValue: observable, - response: observable, + // response: observable, sort: observable, fetchData: action, successCallback: action, diff --git a/src/ts/components/Extension/index.tsx b/src/ts/components/Extension/index.tsx index 0618fba..ff928f5 100644 --- a/src/ts/components/Extension/index.tsx +++ b/src/ts/components/Extension/index.tsx @@ -11,7 +11,7 @@ interface IExtensionProps { function Extension({ statistic, }: IExtensionProps): React.ReactElement | null { - if (!statistic) return null; + if (!statistic || true) return null; const getValue = (more: any) => `${more.author} (${more.percent.toFixed(1)}%)`; diff --git a/src/ts/components/LineChart/index.tsx b/src/ts/components/LineChart/index.tsx index ff88ca7..97e18b4 100644 --- a/src/ts/components/LineChart/index.tsx +++ b/src/ts/components/LineChart/index.tsx @@ -22,11 +22,8 @@ function LineChart({ className, }: ILineChartProps): React.ReactElement | null { if (!value) return null; - if (options.suffix === 'stop') { - console.log('xxx'); - } - const width = Math.round((value ?? 100) * (100 / options.max)); + let width = Math.round((value ?? 100) * (100 / options.max)); if (!details) { return ( diff --git a/src/ts/helpers/DataGrip/components/extension.ts b/src/ts/helpers/DataGrip/components/extension.ts index d3960f9..a6b1946 100644 --- a/src/ts/helpers/DataGrip/components/extension.ts +++ b/src/ts/helpers/DataGrip/components/extension.ts @@ -53,7 +53,7 @@ export default class DataGripByExtension { if (!group[file.extension]) { group[file.extension] = this.#getNewExtension(file); } - group[file.extension][type].files[file.name] = file.firstName; + group[file.extension][type].files[file.id] = file.name; group[file.extension][type].count += 1; } diff --git a/src/ts/helpers/DataGrip/components/pr.ts b/src/ts/helpers/DataGrip/components/pr.ts index 34270ed..a6e863b 100644 --- a/src/ts/helpers/DataGrip/components/pr.ts +++ b/src/ts/helpers/DataGrip/components/pr.ts @@ -143,6 +143,13 @@ export default class DataGripByPR { updateTotalByAuthor(authors: any, refAuthorPR: IHashMap) { this.statisticByName = {}; authors.map((name: string) => { + + let maxDelayDays = 0; + refAuthorPR[name].forEach((pr: any) => { + if (pr.delayDays > maxDelayDays) maxDelayDays = pr.delayDays; + }); + + // TODO: сложын и не интересные показатели. Гистаграмму? const delayDays = DataGripByPR.getPRByGroups(refAuthorPR[name], 'delayDays'); const delayDaysWeightedAverage = parseInt(delayDays.weightedAverage.toFixed(1), 10); @@ -151,6 +158,9 @@ export default class DataGripByPR { this.statisticByName[name] = { author: name, + maxDelayDays, + numberMergedPr: refAuthorPR[name].length, + workDays: workDays.details, delayDays: delayDays.details, weightedAverage: workDaysWeightedAverage + delayDaysWeightedAverage, diff --git a/src/ts/helpers/DataGrip/components/tasks.ts b/src/ts/helpers/DataGrip/components/tasks.ts index 5835eb3..c7939e2 100644 --- a/src/ts/helpers/DataGrip/components/tasks.ts +++ b/src/ts/helpers/DataGrip/components/tasks.ts @@ -7,9 +7,13 @@ export default class DataGripByTasks { statistic: any = []; + // achievements + longTaskByAuthor: IHashMap = {}; + clear() { this.commits = {}; this.statistic = []; + this.longTaskByAuthor = {}; } addCommit(commit: ICommit) { @@ -67,6 +71,11 @@ export default class DataGripByTasks { const to = lastCommit.milliseconds; const daysInWork = Math.ceil((to - from) / settingsStore.ONE_DAY) + 1; + const longTaskByAuthor = this.longTaskByAuthor[shortInfo.author]; + if (!longTaskByAuthor || longTaskByAuthor < daysInWork) { + this.longTaskByAuthor[shortInfo.author] = daysInWork; + } + return { ...shortInfo, to: to !== from ? to : undefined, diff --git a/src/ts/helpers/DataGrip/helpers/tree.ts b/src/ts/helpers/DataGrip/helpers/tree.ts deleted file mode 100644 index 180daee..0000000 --- a/src/ts/helpers/DataGrip/helpers/tree.ts +++ /dev/null @@ -1,63 +0,0 @@ -function addTotalInfo(folder: any) { - folder.total = { added: 0, changes: 0, removed: 0, commits: 0 }; - const authors = Object.keys(folder.authors); - authors.forEach(author => { - folder.total.added += folder.authors[author].added; - folder.total.changes += folder.authors[author].changes; - folder.total.removed += folder.authors[author].removed; - folder.total.commits += folder.authors[author].commits; - }); - authors.forEach(author => { - const authorInfo = folder.authors[author]; - authorInfo.addedPercent = Math.round(authorInfo.added * 100 / folder.total.added); - authorInfo.changesPercent = Math.round(authorInfo.changes * 100 / folder.total.changes); - authorInfo.removedPercent = Math.round(authorInfo.removed * 100 / folder.total.removed); - authorInfo.commitsPercent = Math.round(authorInfo.commits * 100 / folder.total.commits); - }); -} - -function addInfoFromFile(folderInfo: any, file: any) { - folderInfo.lines += file.lines; - for (let author in file.authors) { - if (!folderInfo.authors[author]) { - folderInfo.authors[author] = { - added: 0, - changes: 0, - removed: 0, - commits: 0, - tasks: {}, - types: {}, - scopes: {}, - }; - } - const folder = folderInfo.authors[author]; - const fileInfo = file.authors[author]; - folder.added += fileInfo.added; - folder.changes += fileInfo.changes; - folder.removed += fileInfo.removed; - folder.commits += fileInfo.commits; - } -} - -function addInfoFromFolder(parentInfo: any, folder: any, path: string[]) { - const folderInfo = { lines: 0, authors: {} }; - for (let fileName in folder.content) { - if (folder.content[fileName].content) { - addInfoFromFolder(folderInfo, folder.content[fileName], [...path, fileName]); - } else { - addInfoFromFile(folderInfo, folder.content[fileName]); - addTotalInfo(folder.content[fileName]); - } - } - addInfoFromFile(parentInfo, folderInfo); - folder.path = path; - folder.lines = folderInfo.lines; - folder.authors = folderInfo.authors; - addTotalInfo(folder); -} - -export default function getFileTreeWithStatistic(rootTree: any) { - const folderInfo = { lines: 0, authors: {}, path: [] }; - addInfoFromFolder(folderInfo, rootTree, []); - return rootTree; -} \ No newline at end of file diff --git a/src/ts/helpers/DataGrip/index.ts b/src/ts/helpers/DataGrip/index.ts index 432179d..5380e3b 100644 --- a/src/ts/helpers/DataGrip/index.ts +++ b/src/ts/helpers/DataGrip/index.ts @@ -1,5 +1,4 @@ import ICommit, { ISystemCommit } from 'ts/interfaces/Commit'; -import { IDirtyFile } from 'ts/interfaces/FileInfo'; import settingsStore from 'ts/store/Settings'; import Recommendations from 'ts/helpers/Recommendations'; @@ -11,7 +10,6 @@ import DataGripByType from './components/type'; import DataGripByTimestamp from './components/timestamp'; import DataGripByWeek from './components/week'; import MinMaxCounter from './components/counter'; -import DataGripByExtension from './components/extension'; import DataGripByGet from './components/get'; import DataGripByPR from './components/pr'; import DataGripByTasks from './components/tasks'; @@ -34,8 +32,6 @@ class DataGrip { recommendations: any = new Recommendations(); - extension: any = new DataGripByExtension(); - get: any = new DataGripByGet(); pr: any = new DataGripByPR(); @@ -57,7 +53,6 @@ class DataGrip { this.timestamp.clear(); this.week.clear(); this.recommendations.clear(); - this.extension.clear(); this.get.clear(); this.pr.clear(); this.tasks.clear(); @@ -114,10 +109,6 @@ class DataGrip { this.#updateTotalInfo(); this.hash = Math.random(); } - - updateByFiles(fileList: IDirtyFile[], removedFileList: IDirtyFile[]) { - this.extension.updateTotalInfo(fileList, removedFileList); - } } const dataGrip = new DataGrip(); diff --git a/src/ts/helpers/FileGrip/components/FileBuilder/Common.ts b/src/ts/helpers/FileGrip/components/FileBuilder/Common.ts new file mode 100644 index 0000000..a7ce3d7 --- /dev/null +++ b/src/ts/helpers/FileGrip/components/FileBuilder/Common.ts @@ -0,0 +1,39 @@ +import ICommit, { IFileChange } from 'ts/interfaces/Commit'; +import { IDirtyFile } from 'ts/interfaces/FileInfo'; + +function getNameTypeExtension(path?: string) { + const name = (path || '')?.split('/')?.pop() || ''; + const parts = name.split('.') || []; + const extension = parts[parts.length - 1] || ''; + const type = parts.length > 2 ? parts[parts.length - 2] : ''; + return { name, type, extension }; +} + +export default class FileBuilderCommon { + static getProps(fileChange: IFileChange, commit: ICommit) { + return { + path: fileChange.path, + action: fileChange.action, + firstCommit: commit, + lastCommit: commit, + }; + } + + static updateProps(file: IDirtyFile, fileChange: IFileChange, commit: ICommit) { + file.action = fileChange.action; + file.lastCommit = commit; + } + + static updateTotal(file: IDirtyFile) { + // @ts-ignore + const { name, type, extension } = getNameTypeExtension(file?.path); + file.name = name; + file.type = type; + file.extension = extension; + + // @ts-ignore + const parts = file.path.split('/'); + parts.pop(); + file.path = parts; + } +} diff --git a/src/ts/helpers/FileGrip/components/FileBuilder/LineStat.ts b/src/ts/helpers/FileGrip/components/FileBuilder/LineStat.ts new file mode 100644 index 0000000..89e5c3f --- /dev/null +++ b/src/ts/helpers/FileGrip/components/FileBuilder/LineStat.ts @@ -0,0 +1,52 @@ +import ICommit, { IFileChange } from 'ts/interfaces/Commit'; +import { IDirtyFile } from 'ts/interfaces/FileInfo'; + +import { getValuesInPercent } from '../../helpers'; + +export default class FileBuilderLineStat { + static getProps(fileChange: IFileChange, commit: ICommit) { + return { + lines: fileChange.addedLines, + + addedLines: fileChange.addedLines, + removedLines: fileChange.removedLines, + changedLines: fileChange.changedLines, + + addedLinesByAuthor: { [commit.author]: fileChange.addedLines }, + removedLinesByAuthor: { [commit.author]: fileChange.removedLines }, + changedLinesByAuthor: { [commit.author]: fileChange.changedLines }, + }; + } + + static updateProps(file: IDirtyFile, fileChange: IFileChange, commit: ICommit) { + file.lines += fileChange.addedLines; + file.lines -= fileChange.removedLines; + file.addedLines += fileChange.addedLines; + file.removedLines += fileChange.removedLines; + file.changedLines += fileChange.changedLines; + + file.addedLinesByAuthor[commit.author] = file.addedLinesByAuthor[commit.author] + ? (file.addedLinesByAuthor[commit.author] + fileChange.addedLines) + : fileChange.addedLines; + + file.removedLinesByAuthor[commit.author] = file.removedLinesByAuthor[commit.author] + ? (file.removedLinesByAuthor[commit.author] + fileChange.removedLines) + : fileChange.removedLines; + + file.changedLinesByAuthor[commit.author] = file.changedLinesByAuthor[commit.author] + ? (file.changedLinesByAuthor[commit.author] + fileChange.changedLines) + : fileChange.changedLines; + } + + static updateTotal(file: IDirtyFile) { + file.addedByAuthorInPercent = getValuesInPercent(file.addedLinesByAuthor, file.addedLines); + file.removedByAuthorInPercent = getValuesInPercent(file.removedLinesByAuthor, file.removedLines); + file.changedByAuthorInPercent = getValuesInPercent(file.changedLinesByAuthor, file.changedLines); + + file.addedRemovedChangedInPercent = getValuesInPercent({ + added: file.addedLines, + removed: file.removedLines, + changed: file.changedLines, + }, file.addedLines + file.removedLines + file.changedLines); + } +} diff --git a/src/ts/helpers/FileGrip/components/FileBuilder/index.ts b/src/ts/helpers/FileGrip/components/FileBuilder/index.ts new file mode 100644 index 0000000..e95f12a --- /dev/null +++ b/src/ts/helpers/FileGrip/components/FileBuilder/index.ts @@ -0,0 +1,90 @@ +import ICommit, { IFileChange } from 'ts/interfaces/Commit'; +import IHashMap from 'ts/interfaces/HashMap'; +import { IDirtyFile } from 'ts/interfaces/FileInfo'; + +import FileBuilderCommon from './Common'; +import FileBuilderLineStat from './LineStat'; + +export default class FileGripByPaths { + list: IDirtyFile[] = []; + + refFileIds: IHashMap = {}; + + refRemovedFileIds: IHashMap = {}; + + refExtensionType: IHashMap> = {}; // TODO: remove me? + + clear() { + this.list = []; + this.refFileIds = {}; + this.refRemovedFileIds = {}; + } + + addCommit(fileChange: IFileChange, commit: ICommit) { + let file = this.refFileIds[fileChange.id] || this.refFileIds[fileChange.newId || '']; + if (file) { + this.#updateDirtyFile(file, fileChange, commit); + } else { + this.refFileIds[fileChange.id] = this.#getNewDirtyFile(fileChange, commit) as IDirtyFile; + } + + if (fileChange.newId) { + this.#renameFile(file, fileChange.newId); + } + } + + #getNewDirtyFile(fileChange: IFileChange, commit: ICommit): any { + const commonProps = FileBuilderCommon.getProps(fileChange, commit); + const statProps = FileBuilderLineStat.getProps(fileChange, commit); + + return { + id: fileChange.id, + ...commonProps, + ...statProps, + }; + } + + #updateDirtyFile(file: any, fileChange: IFileChange, commit: ICommit) { + FileBuilderCommon.updateProps(file, fileChange, commit); + FileBuilderLineStat.updateProps(file, fileChange, commit); + } + + #renameFile(file: any, newId: string) { + this.refFileIds[newId] = this.refFileIds[file.id]; + delete this.refFileIds[file.id]; + file.id = newId; + } + + #removeFile(file: any) { + this.refRemovedFileIds[file.id] = this.refFileIds[file.id]; + this.refRemovedFileIds[file.id].action = 'D'; + delete this.refFileIds[file.id]; + } + + updateTotalInfo(callback?: Function) { + this.list = Object.values(this.refFileIds); + this.list.forEach((temp: any) => { + const file = temp; + + FileBuilderCommon.updateTotal(file); + FileBuilderLineStat.updateTotal(file); + + if (file.type) { + if (!this.refExtensionType[file.extension]) this.refExtensionType[file.extension] = {}; + this.refExtensionType[file.extension][file.type] = this.refExtensionType[file.extension][file.type] + ? (this.refExtensionType[file.extension][file.type] + 1) + : 1; + } + + if (file.lines === 0 + || file.action === 'D' + || file.action === 'A') { + this.#removeFile(file); + } + + if (callback) { + callback(file); + } + }); + } +} diff --git a/src/ts/helpers/FileGrip/components/extension.ts b/src/ts/helpers/FileGrip/components/extension.ts new file mode 100644 index 0000000..08d2ed6 --- /dev/null +++ b/src/ts/helpers/FileGrip/components/extension.ts @@ -0,0 +1,64 @@ +import IHashMap from 'ts/interfaces/HashMap'; +import { IDirtyFile } from 'ts/interfaces/FileInfo'; + +const IGNORE_LIST = [ + '.eslintrc', + '.gitignore', + 'package.json', + 'package-lock.json', + 'tsconfig.json', +]; + +export default class FileGripByExtension { + statistic: any = []; + + statisticByName: IHashMap = {}; + + property: string = ''; + + constructor(property?: string) { + this.property = property || 'extension'; + } + + clear() { + this.statistic = []; + this.statisticByName = {}; + } + + addFile(file: IDirtyFile) { + const key = file?.extension; + + if (!key || IGNORE_LIST.includes(file.name)) return; + + if (!this.statisticByName[key]) { + this.statisticByName[key] = this.#getNewExtension(file); + } + + const extensions = this.statisticByName[key]; + if (file.action === 'D') { + extensions.removedFiles.push(file); + extensions.removedCount += 1; + } else { + extensions.files.push(file); + extensions.count += 1; + } + } + + #getNewExtension(file: IDirtyFile) { + return { + extension: file?.extension, + task: file?.firstCommit?.task, + path: file?.name, + files: [], + count: 0, + removedFiles: [], + removedCount: 0, + }; + } + + updateTotalInfo() { + this.statistic = Object.entries(this.statisticByName) + .sort((a: any, b: any) => b[1].count - a[1].count) + .map((item: any) => item[1]); + } +} diff --git a/src/ts/helpers/FileGrip/components/folder.ts b/src/ts/helpers/FileGrip/components/folder.ts new file mode 100644 index 0000000..0e4bc98 --- /dev/null +++ b/src/ts/helpers/FileGrip/components/folder.ts @@ -0,0 +1,109 @@ +import { IDirtyFile, IFolder } from 'ts/interfaces/FileInfo'; +import IHashMap from 'ts/interfaces/HashMap'; + +import { getValuesInPercent } from '../helpers'; + +function getFolder(name?: string, path?: string[], file?: IDirtyFile): IFolder { + return { + id: Math.random(), + name: name || '', // @ts-ignore + path: path || [], + pathString: `${(path || []).join('/')}/${name || ''}`, + content: {}, + + lines: file?.lines || 0, + + addedLines: file?.addedLines || 0, + removedLines: file?.removedLines || 0, + changedLines: file?.changedLines || 0, + + addedLinesByAuthor: { ...(file?.addedLinesByAuthor || {}) }, + removedLinesByAuthor: { ...(file?.removedLinesByAuthor || {}) }, + changedLinesByAuthor: { ...(file?.changedLinesByAuthor || {}) }, + + addedByAuthorInPercent: {}, + removedByAuthorInPercent: {}, + changedByAuthorInPercent: {}, + addedRemovedChangedInPercent: {}, + + firstCommit: file?.firstCommit || null, + lastCommit: file?.firstCommit || null, + }; +} + +function updateFolder(folder: any, file: IDirtyFile) { + folder.lastCommit = file.lastCommit; + folder.lines += file.lines; + + folder.addedLines += file.addedLines || 0; + folder.removedLines += file.removedLines || 0; + folder.changedLines += file.changedLines || 0; + + for (let author in file.addedLinesByAuthor) { + folder.addedLinesByAuthor[author] = folder.addedLinesByAuthor[author] + ? (folder.addedLinesByAuthor[author] + file.addedLinesByAuthor[author]) + : file.addedLinesByAuthor[author]; + } + + for (let author in file.removedLinesByAuthor) { + folder.removedLinesByAuthor[author] = folder.removedLinesByAuthor[author] + ? (folder.removedLinesByAuthor[author] + file.removedLinesByAuthor[author]) + : file.removedLinesByAuthor[author]; + } + + for (let author in file.changedLinesByAuthor) { + folder.changedLinesByAuthor[author] = folder.changedLinesByAuthor[author] + ? (folder.changedLinesByAuthor[author] + file.changedLinesByAuthor[author]) + : file.changedLinesByAuthor[author]; + } +} + +export default class FileGripByFolder { + tree: IFolder = getFolder(); + + folders: IFolder[] = []; + + // achievements + addedFoldersByAuthor: IHashMap = {}; + + clear() { + this.tree = getFolder(); + this.folders = []; + } + + addFile(file: IDirtyFile) { + let prev: any = this.tree.content; + file.path.forEach((folderName: any, index: number) => { + let folder = prev[folderName]; + if (!folder || !folder.content) { + const path = file.path.slice(0, index); + prev[folderName] = getFolder(folderName, path, file); + this.folders.push(prev[folderName]); + } else { + updateFolder(folder, file); + } + prev = prev[folderName].content; + }); + prev[file.name] = file; + } + + updateTotalInfo() { + this.folders.forEach((folder: IFolder) => { + folder.addedByAuthorInPercent = getValuesInPercent(folder.addedLinesByAuthor, folder.addedLines); + folder.removedByAuthorInPercent = getValuesInPercent(folder.removedLinesByAuthor, folder.removedLines); + folder.changedByAuthorInPercent = getValuesInPercent(folder.changedLinesByAuthor, folder.changedLines); + + folder.addedRemovedChangedInPercent = getValuesInPercent({ + added: folder.addedLines, + removed: folder.removedLines, + changed: folder.changedLines, + }, folder.addedLines + folder.removedLines + folder.changedLines); + + const author = folder.firstCommit?.author || ''; + + if (!this.addedFoldersByAuthor[author]) this.addedFoldersByAuthor[author] = []; + this.addedFoldersByAuthor[author].push(folder.pathString); + }); + this.folders = []; + } +} diff --git a/src/ts/helpers/FileGrip/components/type.ts b/src/ts/helpers/FileGrip/components/type.ts new file mode 100644 index 0000000..df871f9 --- /dev/null +++ b/src/ts/helpers/FileGrip/components/type.ts @@ -0,0 +1,55 @@ +import IHashMap from 'ts/interfaces/HashMap'; +import { IDirtyFile } from 'ts/interfaces/FileInfo'; + +export default class FileGripByType { + statistic: any = []; + + statisticByName: IHashMap = {}; + + clear() { + this.statistic = []; + this.statisticByName = {}; + } + + addFile(file: IDirtyFile) { + const key = file?.type; + + if (!key || file?.name?.[0] === '.') return; + + if (!this.statisticByName[key]) { + this.statisticByName[key] = this.#getNewType(file); + } + + const type = this.statisticByName[key]; + type.extension[file?.extension] = type.extension[file?.extension] + ? (type.extension[file?.extension] + 1) + : 1; + + if (file.action === 'D') { + type.removedFiles.push(file); + type.removedCount += 1; + } else { + type.files.push(file); + type.count += 1; + } + } + + #getNewType(file: IDirtyFile) { + return { + type: file?.type, + task: file?.firstCommit?.task, + path: file?.name, + extension: { [file?.extension]: 1 }, + files: [], + count: 0, + removedFiles: [], + removedCount: 0, + }; + } + + updateTotalInfo() { + this.statistic = Object.entries(this.statisticByName) + .sort((a: any, b: any) => b[1].count - a[1].count) + .map((item: any) => item[1]); + } +} diff --git a/src/ts/helpers/FileGrip/helpers/index.ts b/src/ts/helpers/FileGrip/helpers/index.ts new file mode 100644 index 0000000..35a7b18 --- /dev/null +++ b/src/ts/helpers/FileGrip/helpers/index.ts @@ -0,0 +1,12 @@ +import IHashMap from 'ts/interfaces/HashMap'; + +export function getValuesInPercent(list: IHashMap, maxValue: number) { + const percent = 100 / maxValue; + const valuesInPercent = {}; + for (let name in list) { + if (list[name]) { + valuesInPercent[name] = Math.round((list[name] ?? 100) * percent); + } + } + return valuesInPercent; +} diff --git a/src/ts/helpers/FileGrip/index.ts b/src/ts/helpers/FileGrip/index.ts new file mode 100644 index 0000000..e2a1175 --- /dev/null +++ b/src/ts/helpers/FileGrip/index.ts @@ -0,0 +1,56 @@ +import ICommit, { ISystemCommit, IFileChange } from 'ts/interfaces/Commit'; +import { IDirtyFile } from 'ts/interfaces/FileInfo'; + +import FileBuilder from './components/FileBuilder'; +import FileGripByExtension from './components/extension'; +import FileGripByType from './components/type'; +import FileGripByFolder from './components/folder'; + +class FileGrip { + files: any = new FileBuilder(); + + extension: any = new FileGripByExtension(); + + type: any = new FileGripByType(); + + tree: any = new FileGripByFolder(); + + removedTree: any = new FileGripByFolder(); + + clear() { + this.files.clear(); + this.extension.clear(); + this.type.clear(); + this.tree.clear(); + this.removedTree.clear(); + } + + addCommit(commit: ICommit | ISystemCommit) { + if (!commit?.fileChanges?.length) return; + + commit.fileChanges.forEach((fileChange: IFileChange) => { + this.files.addCommit(fileChange, commit); + }); + } + + updateTotalInfo() { + this.files.updateTotalInfo((file: IDirtyFile) => { + this.extension.addFile(file); + this.type.addFile(file); + if (file.action !== 'D') { + this.tree.addFile(file); + } else { + this.removedTree.addFile(file); + } + }); + + this.extension.updateTotalInfo(); + this.type.updateTotalInfo(); + this.tree.updateTotalInfo(); + this.removedTree.updateTotalInfo(); + } +} + +const fileGrip = new FileGrip(); + +export default fileGrip; diff --git a/src/ts/helpers/Parser/file_info.ts b/src/ts/helpers/Parser/file_info.ts deleted file mode 100644 index a1ebdcf..0000000 --- a/src/ts/helpers/Parser/file_info.ts +++ /dev/null @@ -1,36 +0,0 @@ -import ICommit from 'ts/interfaces/Commit'; - -export function getNewFileAuthor( - addedLines: number, - prev?: ICommit | null, -) { - return { - added: addedLines, - changes: addedLines, - removed: 0, - commits: 1, - tasks: { [prev?.task || '']: 1 }, - types: { [prev?.type || '']: 1 }, - scopes: { [prev?.scope || '']: 1 }, - }; -} - -export function getNewFileInfo( - name: string, - addedLines: number, - commit?: ICommit | null, -) { - const nameParts = name?.split('/')?.pop()?.split('.') || []; - return { - name, - extension: nameParts.pop(), - firstName: nameParts.shift(), - suffixes: nameParts, - lines: addedLines, - firstCommit: commit, - lastCommit: commit, - authors: { - [commit?.author || '']: getNewFileAuthor(addedLines, commit), - }, - }; -} diff --git a/src/ts/helpers/Parser/files.ts b/src/ts/helpers/Parser/files.ts deleted file mode 100644 index 2a464c9..0000000 --- a/src/ts/helpers/Parser/files.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { IDirtyFile, IFileTree } from 'ts/interfaces/FileInfo'; -import IHashMap from 'ts/interfaces/HashMap'; - -export function getNewFileName(fileName: string, allFiles: any) { - const hasRename = (/\s=>\s/gim).test(fileName); - if (!hasRename) return fileName; - - let changedName = fileName.match(/\{[^}]+\}/gim)?.pop(); - if (!changedName) changedName = fileName; - - const [oldName, newName] = changedName - ? changedName.replace(/[{}]/gim, '').split(' => ') - : fileName.split(' => '); - - let oldPath = fileName.replace(changedName, oldName); - if (!oldName) oldPath = oldPath.replace('//', '/'); - - const newPath = fileName.replace(changedName, newName); - if (!allFiles[oldPath]) return newPath; - - allFiles[newPath] = allFiles[oldPath]; - allFiles[newPath].name = newPath; - - return newPath; -} - -function getFolder(name: string, file: IDirtyFile): IFileTree { - return { - id: Math.random(), - name: name || '', - firstCommit: file?.firstCommit, - lastCommit: file?.firstCommit, - content: {}, - }; -} - -function getFolderTree(fileTree: any, file: IDirtyFile) { - let prev = fileTree; - let fileName: string = file.path.pop() || ''; - file.path.forEach((folder: any) => { - if (!prev[folder] || !prev[folder].content) { - prev[folder] = getFolder(folder, file); - } else { - prev[folder].lastCommit = file?.lastCommit; - } - prev = prev[folder].content; - }); - prev[fileName] = file; -} - - -export function getFileList(allFiles: IHashMap) { - const fileList = Object.values(allFiles); // @ts-ignore - const fileTree: IFileTree = getFolder(); - - fileList.forEach((file: IDirtyFile) => { - if (!file.name) return; - file.path = file.name.split('/'); - getFolderTree(fileTree.content, file); - }); - - return { fileList, fileTree }; -} diff --git a/src/ts/helpers/Parser/user_info.ts b/src/ts/helpers/Parser/getCommitInfo.ts similarity index 96% rename from src/ts/helpers/Parser/user_info.ts rename to src/ts/helpers/Parser/getCommitInfo.ts index bb22a05..f7d232a 100644 --- a/src/ts/helpers/Parser/user_info.ts +++ b/src/ts/helpers/Parser/getCommitInfo.ts @@ -2,7 +2,7 @@ import ICommit, { COMMIT_TYPE, ISystemCommit } from 'ts/interfaces/Commit'; import { getTypeAndScope, getTask, getTaskNumber } from './getTypeAndScope'; -export default function getUserInfo(logString: string): ICommit | ISystemCommit { +export default function getCommitInfo(logString: string): ICommit | ISystemCommit { // "2021-02-09T12:59:17+03:00>Frolov Ivan>frolov@mail.ru>profile" const parts = logString.split('>'); @@ -35,6 +35,7 @@ export default function getUserInfo(logString: string): ICommit | ISystemCommit text: '', type: 'не подписан', scope: 'неопределенна', + fileChanges: [], }; const isSystemPR = message.indexOf('Pull request #') === 0; diff --git a/src/ts/helpers/Parser/getFileChanges.ts b/src/ts/helpers/Parser/getFileChanges.ts new file mode 100644 index 0000000..c334d5a --- /dev/null +++ b/src/ts/helpers/Parser/getFileChanges.ts @@ -0,0 +1,75 @@ +import { IFileChange } from 'ts/interfaces/Commit'; + +function getFilePath(path: string): string[] { + const formattedPath = path + .replace(/"/gm, '') + .replace(/\/\//gm, '/'); + + const parts = formattedPath.split(/(?:\{)|(?:\s=>\s)|(?:})/gm); + if (parts.length !== 2 && parts.length !== 4) return [formattedPath]; + + if (parts.length === 2) parts.unshift(''); + + let oldPath = `${parts[0] || ''}${parts[1] || ''}${parts[3] || ''}`; + let newPath = `${parts[0] || ''}${parts[2] || ''}${parts[3] || ''}`; + + if (!parts[1]) oldPath = oldPath.replace(/\/\//gm, '/'); + if (!parts[2]) newPath = newPath.replace(/\/\//gm, '/'); + + return [oldPath, newPath]; +} + +// "38 9 src/app.css" -> [38, 9, 9, 'src/app.css'] +export function getNumStatInfo(message: string) { + let [addedRaw, removedRaw, path] = message.split('\t'); + + let added = parseInt(addedRaw, 10) || 0; + let removed = parseInt(removedRaw, 10) || 0; + + let changes = 0; + if (added > removed) { + added = added - removed; + changes = removed; + removed = 0; + } else if (removed > added) { + removed = removed - added; + changes = added; + added = 0; + } else { + changes = added; + added = 0; + removed = 0; + } + + return { + path, + addedLines: added, + removedLines: removed, + changedLines: changes, + }; +} +// ":000000 100644 000000000 fc44b0a37 A public/logo192.png" -> ['A', 'public/logo192.png'] +export function getRawInfo(message: string) { + const action = message[35]; + const path = message.split('\t')[1]; + return { path, action }; +} + +// "src/AppGit.css" -> { id: 'src/appgit.css', path: 'src/AppGit.css' } +export function getInfoFromPath(path: string): IFileChange { + const [oldPath, newPath] = getFilePath(path); + + const id = oldPath.toLowerCase(); + const newId = newPath?.toLowerCase(); + + return { + id, + newId: (newId && id !== newId) ? newId : undefined, + path: newPath || oldPath, + + action: '', + addedLines: 0, + removedLines: 0, + changedLines: 0, + }; +} diff --git a/src/ts/helpers/Parser/index.ts b/src/ts/helpers/Parser/index.ts index 3f3328a..d2b8a90 100644 --- a/src/ts/helpers/Parser/index.ts +++ b/src/ts/helpers/Parser/index.ts @@ -1,118 +1,48 @@ -import { IDirtyFile } from 'ts/interfaces/FileInfo'; +import ICommit, { IFileChange, ISystemCommit } from 'ts/interfaces/Commit'; + import IHashMap from 'ts/interfaces/HashMap'; -import ICommit, { ISystemCommit } from 'ts/interfaces/Commit'; -import settingsStore from 'ts/store/Settings'; -import getUserInfo from './user_info'; -import { getNewFileName, getFileList } from './files'; -import { getNewFileInfo } from './file_info'; +import getCommitInfo from './getCommitInfo'; +import { getInfoFromPath, getNumStatInfo, getRawInfo } from './getFileChanges'; -const uniq = {}; export default function Parser(report: string[]) { - const allFiles: IHashMap = {}; - const removedFiles: IHashMap = {}; + let commit = null; const commits: Array = []; - let week: number = 0; - let weekEndTime: number = 0; - let prev = null; + let files: IHashMap = {}; + let fileChanges: IFileChange | null = null; for (let i = 0, l = report.length; i < l; i += 1) { const message = report[i]; if (!message) continue; + const index = message.indexOf('\t'); - if (index > 0 && index < 10) { - let [addedRaw, removedRaw, fileName] = message.split('\t'); - const formattedFileName = fileName?.replace(/"/gm, ''); - fileName = getNewFileName(formattedFileName, allFiles); - let added = parseInt(addedRaw, 10) || 0; - let removed = parseInt(removedRaw, 10) || 0; - const diff = added - removed; - let changes = added > removed ? removed : added; + if (index > 0 && index < 10) { // парсинг файлов формата --num-stat + const line = getNumStatInfo(message); + if (!files[line.path]) { + files[line.path] = getInfoFromPath(line.path); + } + fileChanges = files[line.path]; + fileChanges.addedLines = line.addedLines; + fileChanges.removedLines = line.removedLines; + fileChanges.changedLines = line.changedLines; - if (!allFiles[fileName] && removedFiles[fileName]) { - allFiles[fileName] = removedFiles[fileName]; - delete removedFiles[fileName]; + } else if (message[0] === ':') { // парсинг файлов формата --raw + const line = getRawInfo(message); + if (!files[line.path]) { + files[line.path] = getInfoFromPath(line.path); } + fileChanges = files[line.path]; + fileChanges.action = line.action; - if (allFiles[fileName]) { - const fileInfo: IDirtyFile = allFiles[fileName]; - fileInfo.lastCommit = prev; - fileInfo.lines += diff; - if (!fileInfo.authors[prev?.author || '']) { - fileInfo.authors[prev?.author || ''] = { - added: 0, - changes: 0, - removed: 0, - commits: 1, - tasks: {}, - types: {}, - scopes: {}, - }; - } - const authorInfo = fileInfo.authors[prev?.author || '']; - authorInfo.changes = authorInfo.changes + changes; - if (diff > 0) { - authorInfo.added = authorInfo.added + diff; - } else { - authorInfo.removed = authorInfo.removed + diff * (-1); - } - authorInfo.commits += 1; - authorInfo.tasks[prev?.task || ''] = (authorInfo.tasks[prev?.task || ''] || 0) + 1; - authorInfo.types[prev?.type || ''] = (authorInfo.tasks[prev?.type || ''] || 0) + 1; - authorInfo.scopes[prev?.scope || ''] = (authorInfo.tasks[prev?.scope || ''] || 0) + 1; - if (allFiles[fileName].lines === 0) { - removedFiles[fileName] = allFiles[fileName]; - delete allFiles[fileName]; - } - } else { - // @ts-ignore - allFiles[fileName] = getNewFileInfo(fileName, added, prev); - } - if (removed > added) { - removed -= added; - changes += added; - added = 0; - } else if (added > removed) { - added -= removed; - changes += removed; - removed = 0; - } else if (added === removed) { - changes += added; - added = 0; - removed = 0; - } - if (prev) { // @ts-ignore - prev.changes += changes; // @ts-ignore - prev.added += added; // @ts-ignore - prev.removed += removed; - } - } else { - if (prev) { - if (uniq[prev.date]) { - // console.log(`double ${uniq[prev.date]} === ${i}`); - } - uniq[prev.date] = i; - } - - const next = getUserInfo(message); - if (next.milliseconds > weekEndTime) { - week += 1; - weekEndTime = next.milliseconds + (settingsStore.ONE_DAY * (6 - next.day)); - } - // @ts-ignore - next.week = week; - - prev = next; - commits.push(prev); // @ts-ignore + } else { // парсинг коммита + if (commit) commit.fileChanges = Object.values(files); + files = {}; + commit = getCommitInfo(message); + commit.week = 1; + commits.push(commit); } } - const { fileList, fileTree } = getFileList(allFiles); - return { - commits, - fileList, - fileTree, - removed: getFileList(removedFiles), - }; + return commits; } diff --git a/src/ts/helpers/Title.ts b/src/ts/helpers/Title.ts index fb3a9ee..0877ece 100644 --- a/src/ts/helpers/Title.ts +++ b/src/ts/helpers/Title.ts @@ -1,7 +1,7 @@ import localization from './Localization'; -function getFormattedType(dataGrip: any): string { - const popularType = dataGrip.extension.statistic?.[0] || {}; +function getFormattedType(fileGrip: any): string { + const popularType = fileGrip.extension.statistic?.[0] || {}; const extension = popularType?.extension || ''; if ([ @@ -30,7 +30,7 @@ function getFormattedType(dataGrip: any): string { 'perl', 'java', ].includes(extension)) { - const hasManifest = dataGrip.extension.statisticByName?.xml?.files?.AndroidManifest; + const hasManifest = fileGrip.extension.statisticByName?.xml?.files?.AndroidManifest; return hasManifest ? 'Android' : 'Back'; @@ -45,12 +45,12 @@ function getFormattedType(dataGrip: any): string { return extension.toUpperCase(); } -export default function getTitle(dataGrip: any, commits: any) { +export default function getTitle(dataGrip: any, fileGrip: any, commits: any) { if (!commits.length) { return localization.get('common.title'); } - const type = getFormattedType(dataGrip) || ''; + const type = getFormattedType(fileGrip) || ''; const task = dataGrip.pr.statistic?.[0]?.task || ''; const author = dataGrip.firstLastCommit.minData.author || ''; const year = commits?.[0]?.year || ''; @@ -59,4 +59,4 @@ export default function getTitle(dataGrip: any, commits: any) { const formattedAuthor = author.split(' ').shift() || ''; return `${type} ${formattedTask} (${year}, ${formattedAuthor})`; -} \ No newline at end of file +} diff --git a/src/ts/helpers/achievement/byAuthor.ts b/src/ts/helpers/achievement/byAuthor.ts index f019944..411d9de 100644 --- a/src/ts/helpers/achievement/byAuthor.ts +++ b/src/ts/helpers/achievement/byAuthor.ts @@ -1,6 +1,37 @@ import ALL_ACHIEVEMENTS from './constants/list'; +import ICommit, { ISystemCommit } from 'ts/interfaces/Commit'; -export default function getAchievementByAuthor(list: string[], statistic: any) { +function getHoroscope(firstCommit: ICommit | ISystemCommit) { + const month = firstCommit.month + 1; + const dayInMonth = firstCommit.month; + const horoscopeRange = [ + { from: [22, 12], to: [20, 1] }, + { from: [20, 1], to: [18, 2] }, + { from: [19, 2], to: [20, 3] }, + { from: [21, 3], to: [19, 4] }, + { from: [20, 4], to: [20, 5] }, + { from: [21, 5], to: [21, 6] }, + { from: [22, 6], to: [22, 7] }, + { from: [23, 7], to: [22, 8] }, + { from: [23, 8], to: [22, 9] }, + { from: [23, 9], to: [23, 10] }, + { from: [24, 10], to: [22, 11] }, + { from: [23, 11], to: [21, 12] }, + ]; + + const achievementIndex = horoscopeRange.reduce((acc: string, item: any, index: number) => { + if (acc) return acc; + if ((item.from[1] === month && dayInMonth >= item.from[0]) + || (item.to[1] === month && dayInMonth <= item.to[0])) return `${index + 1}`; + return acc; + }, ''); + + return `horoscope${achievementIndex}`; +} + + +export default function getAchievementByAuthor(list: string[], dataGrip: any, author: string) { + const statistic = dataGrip.author.statisticByName[author]; const commitByHours = statistic.commitsByHour; if (statistic.commits > 20) { @@ -40,6 +71,15 @@ export default function getAchievementByAuthor(list: string[], statistic: any) { if (statistic.allDaysInProject >= 666) list.push('more666DaysInProject'); // Азино - отработал 777 дней на проекте if (statistic.allDaysInProject >= 777) list.push('more777DaysInProject'); + // Старожил - отработал 3 года на проекте + if (statistic.allDaysInProject >= (3 * 365)) list.push('more3YearsInProject'); + // хоть раз работал на выходных + if (statistic.commitsByDayAndHourTotal[5] + || statistic.commitsByDayAndHourTotal[6]) list.push('workOnWeekends'); + + // работал над задачей больше трех месяцев + const daysInWork = dataGrip.tasks.longTaskByAuthor[author] || {}; + if (daysInWork > 92) list.push('longTask'); } // Ни единого разрыва - 0 дней без коммитов if (statistic.lazyDays === 0) list.push('zeroLazyDays'); @@ -48,6 +88,11 @@ export default function getAchievementByAuthor(list: string[], statistic: any) { // Точно в цель - в среднем 1 коммит на таск if (statistic.tasks / statistic.commits) list.push('oneCommitOneTask'); + list.push(getHoroscope(statistic.firstCommit)); + + const statisticByPr = dataGrip.pr.statisticByName[author] || {}; + if (statisticByPr?.maxDelayDays > 31) list.push('longWaitPR'); + return list.reduce((acc: any, type: string) => { const index = ALL_ACHIEVEMENTS[type] - 1; acc[index].push(type); diff --git a/src/ts/helpers/achievement/byCompetition.ts b/src/ts/helpers/achievement/byCompetition.ts index 4eb738b..63bbfcd 100644 --- a/src/ts/helpers/achievement/byCompetition.ts +++ b/src/ts/helpers/achievement/byCompetition.ts @@ -1,6 +1,7 @@ import IHashMap from 'ts/interfaces/HashMap'; import getAchievementByAuthor from './byAuthor'; +import getAchievementByFile from './byFile'; class AchievementsByAuthor { authors: IHashMap = {}; @@ -10,11 +11,12 @@ class AchievementsByAuthor { } add(authors: Array<[string, number]>, maxAchievementCode: string, minAchievementCode?: string) { - const first = authors[0][0]; + const first = authors?.[0]?.[0]; + if (!first) return; this.authors?.[first]?.push(maxAchievementCode); if (!minAchievementCode) return; - const last = authors[authors.length - 1][0]; + const last = authors?.[authors.length - 1]?.[0]; this.authors?.[last]?.push(minAchievementCode); } } @@ -22,7 +24,7 @@ class AchievementsByAuthor { class AchievementsByCompetition { authors: IHashMap> = {}; - updateByDataGrip(dataGrip: any) { + updateByGrip(dataGrip: any, fileGrip: any) { const statisticByAuthor = dataGrip.author.statistic; const byAuthor: any = new AchievementsByAuthor(); const total = this.#getMinMaxValue(statisticByAuthor, dataGrip, (statistic: any) => { @@ -62,6 +64,12 @@ class AchievementsByCompetition { // Количество коммитов в день byAuthor.add(total.commitsInDay, 'moreCommits'); + // Таможня даёт добро + byAuthor.add(total.morePRMerge, 'morePRMerge'); + + // Давным давно, в далёкой галактике + byAuthor.add(total.moreLongWaitPR, 'moreLongWaitPR'); + // Первый и последний коммит const lastAuthor = dataGrip.firstLastCommit.maxData.author; const firstAuthor = dataGrip.firstLastCommit.minData.author; @@ -72,10 +80,11 @@ class AchievementsByCompetition { byAuthor.authors[lastAuthor].push('lastCommit'); } - console.dir(byAuthor); + getAchievementByFile(fileGrip, byAuthor); + statisticByAuthor.forEach((statistic: any) => { const achievements = byAuthor.authors[statistic.author]; - this.authors[statistic.author] = getAchievementByAuthor(achievements, statistic); + this.authors[statistic.author] = getAchievementByAuthor(achievements, dataGrip, statistic.author); }); } @@ -85,9 +94,9 @@ class AchievementsByCompetition { statisticByAuthor.forEach((statistic: any) => { callback(statistic); - const addData = (property: string, count: number) => { + const addData = (property: string, count?: number) => { if (!total[property]) total[property] = []; - total[property].push([statistic.author, count]); + total[property].push([statistic.author, count || 0]); }; addData('nameLength', statistic.author.length); @@ -101,6 +110,10 @@ class AchievementsByCompetition { addData('tasksInDay', byTimestamp.tasksByTimestampCounter.max); addData('commitsInDay', byTimestamp.commitsByTimestampCounter.max); + const byPr = dataGrip.pr.statisticByName[statistic.author] || {}; + addData('moreLongWaitPR', byPr?.maxDelayDays); + addData('morePRMerge', byPr?.numberMergedPr); + if (statistic.isStaff) return; addData('allDaysInProject', statistic.allDaysInProject); addData('lazyDays', statistic.lazyDays); diff --git a/src/ts/helpers/achievement/byFile.ts b/src/ts/helpers/achievement/byFile.ts new file mode 100644 index 0000000..48ba5f4 --- /dev/null +++ b/src/ts/helpers/achievement/byFile.ts @@ -0,0 +1,81 @@ +import { IDirtyFile } from 'ts/interfaces/FileInfo'; +import IHashMap from 'ts/interfaces/HashMap'; + +function getHashMap(list: string[]) { + return Object.fromEntries(list.map((code: string) => [code, true])); +} + +const IS_LINT_HINT = getHashMap(['.eslintrc', '.stylelintrc.json']); +const IS_CSS = getHashMap(['css', 'scss', 'less', 'style']); +const IS_TEST = getHashMap(['test', 'mock', 'snap']); +const IS_CI_CD = getHashMap([ + 'Dockerfile', + 'gradlew', + 'gradlew.bat', + 'gradle.properties', + 'docker-compose.yml', +]); + +function getAddedChangedLines(file: IDirtyFile) { + return [ + Object.entries(file?.addedLinesByAuthor || {}), + Object.entries(file?.changedLinesByAuthor || {}), + ]; +} + +function getTopUser(listOfChanges: any) { + const total = listOfChanges.reduce((acc: any, item: any) => { + acc[item[0]] = acc[item[0]] ? (acc[item[0]] + item[1]) : item[1]; + return acc; + }, {}); + + return Object.entries(total).sort((a: any, b: any) => b[1] - a[1]); +} + +export default function getAchievementByFile(fileGrip: any, byAuthor: any) { + const moreLintHint: any = []; + const moreReadMe: any = []; + const moreStyle: any = []; + const moreTests: any = []; + const moreDevOps: any = []; + const longFilePath: any = { author: '', length: 0 }; + const longFileName: any = { author: '', length: 0 }; + const fileRush: IHashMap = {}; + + fileGrip.files.list.forEach((file: IDirtyFile) => { + if (IS_LINT_HINT[file.name]) moreLintHint.push(getAddedChangedLines(file)); + if (file.extension === 'md') moreReadMe.push(getAddedChangedLines(file)); + if (IS_CSS[file.extension]) moreStyle.push(getAddedChangedLines(file)); + if (IS_TEST[file.extension] || IS_TEST[file.type]) moreTests.push(getAddedChangedLines(file)); + if (IS_CI_CD[file.name]) moreDevOps.push(getAddedChangedLines(file)); + + fileRush[file.firstCommit?.author || ''] = fileRush[file.firstCommit?.author || ''] + ? (fileRush[file.firstCommit?.author || ''] + 1) + : 1; + + if (file.name.length > longFileName.length) { + longFileName.author = file.firstCommit?.author; + longFileName.length = file.name.length; + } + if (file.path.length > longFilePath.length) { + longFilePath.author = file.firstCommit?.author; + longFilePath.length = file.name.length; + } + }); + + const userFileRush = Object.entries(fileRush).sort((a: any, b: any) => b[1] - a[1]); + + const addedFoldersByAuthor = Object + .entries(fileGrip.tree.addedFoldersByAuthor) + .map((item: any) => [item[0], item[1].length]); + + byAuthor.add(getTopUser(userFileRush), 'fileRush'); + byAuthor.add(getTopUser(addedFoldersByAuthor), 'moreAddedFolders'); + byAuthor.add(getTopUser(moreLintHint.flat(2)), 'moreLintHint'); + byAuthor.add(getTopUser(moreReadMe.flat(2)), 'moreReadMe'); + byAuthor.add(getTopUser(moreStyle.flat(2)), 'moreStyle'); + byAuthor.add(getTopUser(moreTests.flat(2)), 'moreTests'); + byAuthor.add(getTopUser(moreDevOps.flat(2)), 'moreDevOps'); + byAuthor.authors[longFilePath.author].push('longFilePath'); + byAuthor.authors[longFileName.author].push('longFileName'); +} diff --git a/src/ts/helpers/achievement/constants/list.ts b/src/ts/helpers/achievement/constants/list.ts index 2b8f22d..96b6919 100644 --- a/src/ts/helpers/achievement/constants/list.ts +++ b/src/ts/helpers/achievement/constants/list.ts @@ -33,6 +33,7 @@ export default { more666DaysInProject: ACHIEVEMENT_TYPE.GOOD, // Чёрт more777DaysInProject: ACHIEVEMENT_TYPE.GOOD, // Азино 3 топора moreRefactoring: ACHIEVEMENT_TYPE.GOOD, // Выпускающий редактор + moreStyle: ACHIEVEMENT_TYPE.GOOD, // Полиция моды // нет картинки longestMessage: ACHIEVEMENT_TYPE.NORMAL, // А разговоров то было... @@ -41,39 +42,50 @@ export default { noCommitOnDay: ACHIEVEMENT_TYPE.NORMAL, // Технический перерыв hasCommitEveryTime: ACHIEVEMENT_TYPE.BAD, // Умер на работе commitsAfter1800: ACHIEVEMENT_TYPE.GOOD, // Делу время - more365DaysInProject: ACHIEVEMENT_TYPE.GOOD, // Нужно чуть чуть потерпеть, отработал год и не уволился + more365DaysInProject: ACHIEVEMENT_TYPE.GOOD, // Годовасик, отработал год и не уволился + more3YearsInProject: ACHIEVEMENT_TYPE.GOOD, // Старожил. больше 3х лет на проекте firstCommit: ACHIEVEMENT_TYPE.NORMAL, // Кто первый, того и тапки. первый коммит на проекте lastCommit: ACHIEVEMENT_TYPE.NORMAL, // Я закончил. последний коммит на проекте firstLastCommit: ACHIEVEMENT_TYPE.NORMAL, // От начала и до конца. первый и последний коммит на проекте + moreLintHint: ACHIEVEMENT_TYPE.GOOD, // Грамар-наци. Больше всех внес в .eslintrc .stylelintrc.json + moreReadMe: ACHIEVEMENT_TYPE.GOOD, // Летописец. Больше остальных внес в .MD + moreTests: ACHIEVEMENT_TYPE.GOOD, // Тестировщик. Больше остальных внес в тестирование + moreDevOps: ACHIEVEMENT_TYPE.GOOD, // DevOps. Больше остальных внес в DevOps + longFilePath: ACHIEVEMENT_TYPE.NORMAL, // Закрома родины. первый создал файл с самым глубоким вложением + longFileName: ACHIEVEMENT_TYPE.NORMAL, // Размер имеет значение. создал файл с самым длинным именем + moreAddedFolders: ACHIEVEMENT_TYPE.NORMAL, // Директор, создал больше всех дирректорий + morePRMerge: ACHIEVEMENT_TYPE.NORMAL, // Таможня даёт добро, + longWaitPR: ACHIEVEMENT_TYPE.BAD, // Обещать не значит жениться, ожидание PR больше месяца + moreLongWaitPR: ACHIEVEMENT_TYPE.BAD, // Давным давно, в далёкой галактике + workOnWeekends: ACHIEVEMENT_TYPE.BAD, // Работа не walk. хоть раз работал на выходных + longTask: ACHIEVEMENT_TYPE.BAD, // Вроде изян. работал над задачей больше трех месяцев + fileRush: ACHIEVEMENT_TYPE.NORMAL, // Зерг Раш. Создал больше всех файлов в проекте + + // Типаж Козерога, по месяцу первого коммита + horoscope1: ACHIEVEMENT_TYPE.NORMAL, + horoscope2: ACHIEVEMENT_TYPE.NORMAL, + horoscope3: ACHIEVEMENT_TYPE.NORMAL, + horoscope4: ACHIEVEMENT_TYPE.NORMAL, + horoscope5: ACHIEVEMENT_TYPE.NORMAL, + horoscope6: ACHIEVEMENT_TYPE.NORMAL, + horoscope7: ACHIEVEMENT_TYPE.NORMAL, + horoscope8: ACHIEVEMENT_TYPE.NORMAL, + horoscope9: ACHIEVEMENT_TYPE.NORMAL, + horoscope10: ACHIEVEMENT_TYPE.NORMAL, + horoscope11: ACHIEVEMENT_TYPE.NORMAL, + horoscope12: ACHIEVEMENT_TYPE.NORMAL, // нет кода - moreStyle: ACHIEVEMENT_TYPE.GOOD, // Полиция моды lessWorkDays: ACHIEVEMENT_TYPE.BAD, // Дальше без меня moreOnHoliday: ACHIEVEMENT_TYPE.BAD, // Нет жизни moreCreateCode: ACHIEVEMENT_TYPE.NORMAL, // Созидатель -- переименовать? moreRemoveCode: ACHIEVEMENT_TYPE.NORMAL, // Разрушитель moreChangeCode: ACHIEVEMENT_TYPE.NORMAL, // Реформатор - morePRMerge: ACHIEVEMENT_TYPE.GOOD, // Таможня даёт добро, - workOnWeekends: ACHIEVEMENT_TYPE.BAD, // Работа не walk. хоть раз работал на выходных - longWaitPR: ACHIEVEMENT_TYPE.BAD, // Обещать не значит жениться, ожидание PR больше месяца - moreLongWaitPR: ACHIEVEMENT_TYPE.BAD, // Давным давно, в далёкой галактике - more3YearsInProject: ACHIEVEMENT_TYPE.GOOD, // Старожил. больше 3х лет на проекте - oneExtension: ACHIEVEMENT_TYPE.NORMAL, // Один в поле воин. Только он работает с файлами определенного расширения - fileRush: ACHIEVEMENT_TYPE.NORMAL, // Зерг Раш. Создал больше всех файлов в проекте - moreLintHint: ACHIEVEMENT_TYPE.GOOD, // Грамар-наци. Больше всех внес в .eslintrc .stylelintrc.json - moreReadMe: ACHIEVEMENT_TYPE.GOOD, // Летописец. Больше остальных внес в .MD - moreDevOps: ACHIEVEMENT_TYPE.GOOD, // DevOps. Больше остальных внес в DevOps - moreTests: ACHIEVEMENT_TYPE.GOOD, // Тестировщик. Больше остальных внес в тестирование - allRelease: ACHIEVEMENT_TYPE.NORMAL, // Фулл хаус. есть релиз, собранный только из его задач - longFilePath: ACHIEVEMENT_TYPE.NORMAL, // Закрома родины. первый создал файл с самым глубоким вложением - longFileName: ACHIEVEMENT_TYPE.NORMAL, // Размер имеет значение. создал файл с самым длинным именем - removeCreateFile: ACHIEVEMENT_TYPE.NORMAL, // Откопал стюардессу. востановил удаленный файл renameFile: ACHIEVEMENT_TYPE.NORMAL, // Астана Нур-Султан Астана. переименовывал туда-сюда файл - longTask: ACHIEVEMENT_TYPE.BAD, // Вроде изян. работал над задачей больше трех месяцев // Галя, у нас отмена - откатил назад // У меня работает - больше всего коммитов с текстом fix // 500я на проде - больше всего коммитов с префиксом hotfix @@ -81,6 +93,4 @@ export default { // godFather: ACHIEVEMENT_TYPE.NORMAL, // Крёстный отец. Первый создал файлы небольшой группы. // Боярин - есть папка на 20 файлов, где правит только этот человек // Феодал - есть папка на 50 файлов, где правит только этот человек - - // Психологический знак задиака по дате первого коммита }; diff --git a/src/ts/interfaces/Banner.ts b/src/ts/interfaces/Banner.ts new file mode 100644 index 0000000..637a360 --- /dev/null +++ b/src/ts/interfaces/Banner.ts @@ -0,0 +1,20 @@ +interface IBanner { + isDefault?: boolean; + ref?: string; + link?: string; + isOpenInNewTab?: boolean; + + /* Логотип */ + icon?: string; + title?: string; + + /* Картинка баннера */ + banner?: string; + + /* Текстовы баннер */ + bannerText?: string; + color?: string; + backgroundColor?: string; +} + +export default IBanner; diff --git a/src/ts/interfaces/Commit.ts b/src/ts/interfaces/Commit.ts index eefe444..c443022 100644 --- a/src/ts/interfaces/Commit.ts +++ b/src/ts/interfaces/Commit.ts @@ -1,3 +1,17 @@ +export interface IFileChange { + id: string; // регистро-независимый путь в качестве ID + path: string; // актуальный путь с учётом регистра + + newId?: string; // новый ID, если файл переименовали + newPath?: string; // новый путь с учётом регистра + + action: string; // тип действия с файлом: добавили, изменили, удалили + + addedLines: number; + removedLines: number; + changedLines: number; +} + export interface ILog { // date date: string; // "2021-02-09T12:59:17+03:00", @@ -22,6 +36,8 @@ export interface ILog { taskNumber: string; // "0000", type: string; // feat|fix|docs|style|refactor|test|chore scope: string; // table, sale, profile and etc. + + fileChanges: IFileChange[]; } export const COMMIT_TYPE = { diff --git a/src/ts/interfaces/FileInfo.ts b/src/ts/interfaces/FileInfo.ts index e914080..44c3042 100644 --- a/src/ts/interfaces/FileInfo.ts +++ b/src/ts/interfaces/FileInfo.ts @@ -1,37 +1,40 @@ import ICommit, { ISystemCommit } from './Commit'; import IHashMap from './HashMap'; -export interface IDirtyFile { - name: string; // ".gitignore", +interface IFileStat { lines: number; // 38, line in file for this moment + + addedLines: number; + removedLines: number; + changedLines: number; + + addedLinesByAuthor: IHashMap; // added lines by author + removedLinesByAuthor: IHashMap; // removed lines by author + changedLinesByAuthor: IHashMap; // removed lines by author + + addedByAuthorInPercent: IHashMap; + removedByAuthorInPercent: IHashMap; + changedByAuthorInPercent: IHashMap; + addedRemovedChangedInPercent: IHashMap; + firstCommit: ICommit | ISystemCommit | null, lastCommit: ICommit | ISystemCommit | null, - path: string[], - extension: string, - firstName: string, - authors: { - [author: string]: { - added: number; // 38, - changes: number; // 38, - removed: number; // 0, - commits: number; // 1, - tasks: { - [taskName: string]: number, - }, - types: { - [typeName: string]: number, - }, - scopes: { - [scopeName: string]: number, - } - } - } } -export interface IFileTree { +export interface IDirtyFile extends IFileStat { + id: string; // "src/mynewlogo.test.ts", + path: string[]; // ['src'] + pathString: string; // 'src/MyNewLogo.test.ts' + name: string; // "MyNewLogo.test.ts", + extension: string; // "ts", + type: string; // "test", + action: string; // 'A' or 'M' or 'D' +} + +export interface IFolder extends IFileStat { id?: number; name?: string; - firstCommit: ICommit | ISystemCommit | null, - lastCommit: ICommit | ISystemCommit | null, + path: string[]; // ['src'] + pathString: string; // 'src\\ts' content: IHashMap, } diff --git a/src/ts/pages/Common/helpers/getMax.ts b/src/ts/pages/Common/helpers/getMax.ts index 0394e5e..aea2174 100644 --- a/src/ts/pages/Common/helpers/getMax.ts +++ b/src/ts/pages/Common/helpers/getMax.ts @@ -9,4 +9,4 @@ export function getMax(response: IPagination, property: string, subProperty export function getMaxByLength(response: IPagination, property: string) { return getMax(response, property, 'length'); -} \ No newline at end of file +} diff --git a/src/ts/pages/Settings/components/MailMap.tsx b/src/ts/pages/Settings/components/MailMap.tsx index b9ab83a..3b244f0 100644 --- a/src/ts/pages/Settings/components/MailMap.tsx +++ b/src/ts/pages/Settings/components/MailMap.tsx @@ -6,10 +6,10 @@ import Console from 'ts/components/Console'; import style from '../styles/index.module.scss'; function MailMap(): React.ReactElement | null { - const items = dataGripStore.dataGrip.author.statistic.map((item: any) => ( - `${item.author} <${item.firstCommit.email}> <${item.firstCommit.email}>` - )); - const commands = items.map((text: string) => (

    {text}

    )); + const items = dataGripStore.dataGrip.author.statistic + .map((item: any) => `${item.author} <${item.firstCommit.email}> <${item.firstCommit.email}>`) + .sort(); + const commands = items.map((text: any) => (

    {text}

    )); const commandsForCopy = items.join('\r\n'); return ( diff --git a/src/ts/pages/Team/components/Extension2.tsx b/src/ts/pages/Team/components/Extension.tsx similarity index 87% rename from src/ts/pages/Team/components/Extension2.tsx rename to src/ts/pages/Team/components/Extension.tsx index e3348a2..64c9b17 100644 --- a/src/ts/pages/Team/components/Extension2.tsx +++ b/src/ts/pages/Team/components/Extension.tsx @@ -29,8 +29,8 @@ interface IFilesViewProps { function ExtensionView({ response, updateSort, rowsForExcel, mode }: IFilesViewProps) { if (!response) return null; - const current = getMax(response, 'current', 'count'); - const removed = getMax(response, 'removed', 'count'); + const current = getMax(response, 'count'); + const removed = getMax(response, 'removedCount'); const max = Math.max(current, removed); const filesChart = getOptions({ max, suffix: 'page.team.extension.files' }); @@ -47,14 +47,14 @@ function ExtensionView({ response, updateSort, rowsForExcel, mode }: IFilesViewP isFixed template={ColumnTypesEnum.STRING} title="page.team.extension.name" - properties="extension" + properties="type" width={200} /> row.count === 1 || row.removedCount === 1 ? row.path : ''} /> {mode === 'print' ? ( value.count} + properties="count" /> ( + template={(value: number) => ( )} /> value.count} + properties="removedCount" /> ( + template={(value: number) => ( )} /> @@ -127,7 +125,7 @@ ExtensionView.defaultProps = { const Extension = observer(({ mode, }: ICommonPageProps): React.ReactElement | null => { - const rows = dataGripStore.dataGrip.extension.statistic; + const rows = dataGripStore.fileGrip.type.statistic; if (rows?.length < 2) return mode !== 'print' ? () : null; return ( diff --git a/src/ts/pages/Team/components/FileAnalitics/Extension.tsx b/src/ts/pages/Team/components/FileAnalitics/Extension.tsx new file mode 100644 index 0000000..5c5db3f --- /dev/null +++ b/src/ts/pages/Team/components/FileAnalitics/Extension.tsx @@ -0,0 +1,151 @@ +import React from 'react'; +import { observer } from 'mobx-react-lite'; + +import { IPaginationRequest, IPagination } from 'ts/interfaces/Pagination'; +import dataGripStore from 'ts/store/DataGrip'; + +import ICommonPageProps from 'ts/components/Page/interfaces/CommonPageProps'; +import DataLoader from 'ts/components/DataLoader'; +import Pagination from 'ts/components/DataLoader/components/Pagination'; +import getFakeLoader from 'ts/components/DataLoader/helpers/formatter'; +import NothingFound from 'ts/components/NothingFound'; +import Title from 'ts/components/Title'; +import DataView from 'ts/components/DataView'; +import Column from 'ts/components/Table/components/Column'; +import { ColumnTypesEnum } from 'ts/components/Table/interfaces/Column'; +import getOptions from 'ts/components/LineChart/helpers/getOptions'; +import LineChart from 'ts/components/LineChart'; +import { getMax } from 'ts/pages/Common/helpers/getMax'; +import ExternalLink from 'ts/components/ExternalLink'; +import userSettings from 'ts/store/UserSettings'; + +interface IFilesViewProps { + response?: IPagination; + updateSort?: Function; + rowsForExcel?: any[]; + mode?: string; +} + +function ExtensionView({ response, updateSort, rowsForExcel, mode }: IFilesViewProps) { + if (!response) return null; + + const current = getMax(response, 'count'); + const removed = getMax(response, 'removedCount'); + const max = Math.max(current, removed); + const filesChart = getOptions({ max, suffix: 'page.team.extension.files' }); + + return ( + + + row.count === 1 || row.removedCount === 1 ? row.path : ''} + /> + {mode === 'print' ? ( + + ) : ( + { + if (!row.path) return ''; + return ( + + ); + }} + title="page.team.pr.task" + properties="task" + width={120} + /> + )} + + ( + + )} + /> + + ( + + )} + /> + + ); +} + +ExtensionView.defaultProps = { + response: undefined, +}; + +const Extension = observer(({ + mode, +}: ICommonPageProps): React.ReactElement | null => { + const rows = dataGripStore.fileGrip.extension.statistic; + if (rows?.length < 2) return mode !== 'print' ? () : null; + + return ( + <> + + <DataLoader + to="response" + loader={(pagination?: IPaginationRequest) => getFakeLoader({ + content: rows, pagination, mode, + })} + watch={`${mode}${dataGripStore.dataGrip.hash}`} + > + <ExtensionView + mode={mode} + rowsForExcel={rows} + /> + <Pagination /> + </DataLoader> + </> + ); +}); + +export default Extension; diff --git a/src/ts/pages/Team/components/FileAnalitics/Type.tsx b/src/ts/pages/Team/components/FileAnalitics/Type.tsx new file mode 100644 index 0000000..2e2168d --- /dev/null +++ b/src/ts/pages/Team/components/FileAnalitics/Type.tsx @@ -0,0 +1,151 @@ +import React from 'react'; +import { observer } from 'mobx-react-lite'; + +import { IPaginationRequest, IPagination } from 'ts/interfaces/Pagination'; +import dataGripStore from 'ts/store/DataGrip'; + +import ICommonPageProps from 'ts/components/Page/interfaces/CommonPageProps'; +import DataLoader from 'ts/components/DataLoader'; +import Pagination from 'ts/components/DataLoader/components/Pagination'; +import getFakeLoader from 'ts/components/DataLoader/helpers/formatter'; +import NothingFound from 'ts/components/NothingFound'; +import Title from 'ts/components/Title'; +import DataView from 'ts/components/DataView'; +import Column from 'ts/components/Table/components/Column'; +import { ColumnTypesEnum } from 'ts/components/Table/interfaces/Column'; +import getOptions from 'ts/components/LineChart/helpers/getOptions'; +import LineChart from 'ts/components/LineChart'; +import { getMax } from 'ts/pages/Common/helpers/getMax'; +import ExternalLink from 'ts/components/ExternalLink'; +import userSettings from 'ts/store/UserSettings'; + +interface IFilesViewProps { + response?: IPagination<any>; + updateSort?: Function; + rowsForExcel?: any[]; + mode?: string; +} + +function TypeView({ response, updateSort, rowsForExcel, mode }: IFilesViewProps) { + if (!response) return null; + + const current = getMax(response, 'count'); + const removed = getMax(response, 'removedCount'); + const max = Math.max(current, removed); + const filesChart = getOptions({ max, suffix: 'page.team.extension.files' }); + + return ( + <DataView + rowsForExcel={rowsForExcel} + rows={response.content} + sort={response.sort} + updateSort={updateSort} + type={mode === 'print' ? 'cards' : undefined} + columnCount={mode === 'print' ? 3 : undefined} + > + <Column + isFixed + template={ColumnTypesEnum.STRING} + title="page.team.extension.name" + properties="type" + width={200} + /> + <Column + template={ColumnTypesEnum.STRING} + title="page.team.extension.path" + width={350} + formatter={(row: any) => row.count === 1 || row.removedCount === 1 ? row.path : ''} + /> + {mode === 'print' ? ( + <Column + isSortable + title="page.team.pr.task" + properties="task" + width={120} + /> + ) : ( + <Column + isSortable + template={(value: string, row: any) => { + if (!row.path) return ''; + return ( + <ExternalLink + link={`${userSettings?.settings?.linksPrefix?.task || '/'}${value}`} + text={value} + /> + ); + }} + title="page.team.pr.task" + properties="task" + width={120} + /> + )} + <Column + template={ColumnTypesEnum.SHORT_NUMBER} + properties="count" + /> + <Column + isSortable + title="page.team.extension.current.count" + properties="count" + width={170} + minWidth={170} + template={(value: number) => ( + <LineChart + options={filesChart} + value={value} + /> + )} + /> + <Column + template={ColumnTypesEnum.SHORT_NUMBER} + properties="removedCount" + /> + <Column + isSortable + title="page.team.extension.removed.count" + properties="removedCount" + width={170} + minWidth={170} + template={(value: number) => ( + <LineChart + options={filesChart} + value={value} + /> + )} + /> + </DataView> + ); +} + +TypeView.defaultProps = { + response: undefined, +}; + +const Type = observer(({ + mode, +}: ICommonPageProps): React.ReactElement | null => { + const rows = dataGripStore.fileGrip.type.statistic; + if (rows?.length < 2) return mode !== 'print' ? (<NothingFound />) : null; + + return ( + <> + <Title title="sidebar.team.extension"/> + <DataLoader + to="response" + loader={(pagination?: IPaginationRequest) => getFakeLoader({ + content: rows, pagination, mode, + })} + watch={`${mode}${dataGripStore.dataGrip.hash}`} + > + <TypeView + mode={mode} + rowsForExcel={rows} + /> + <Pagination /> + </DataLoader> + </> + ); +}); + +export default Type; diff --git a/src/ts/pages/Team/components/FileAnalitics/index.tsx b/src/ts/pages/Team/components/FileAnalitics/index.tsx new file mode 100644 index 0000000..8d55210 --- /dev/null +++ b/src/ts/pages/Team/components/FileAnalitics/index.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import { observer } from 'mobx-react-lite'; + +import ICommonPageProps from 'ts/components/Page/interfaces/CommonPageProps'; + +import Extension from './Extension'; +import Type from './Type'; + +const FileAnalitics = observer(({ + mode, +}: ICommonPageProps): React.ReactElement | null => { + return ( + <> + <Extension mode={mode} /> + <Type mode={mode} /> + </> + ); +}); + +export default FileAnalitics; diff --git a/src/ts/pages/Team/components/Files/FileBreadcrumbs.tsx b/src/ts/pages/Team/components/Files/FileBreadcrumbs.tsx new file mode 100644 index 0000000..4561c1f --- /dev/null +++ b/src/ts/pages/Team/components/Files/FileBreadcrumbs.tsx @@ -0,0 +1,48 @@ +import React from 'react'; +import { observer } from 'mobx-react-lite'; + +import style from '../../styles/path.module.scss'; +import treeStore from '../../store/Tree'; + +const FileBreadcrumbs = observer((): React.ReactElement => { + const directories = treeStore.selectedPath + .map((dirName: string, index: number) => ( + <> + <span + key={`${dirName}.`} + className={style.file_breadcrumbs_text} + > + {'/'} + </span> + <span + key={dirName} + className={`${style.file_breadcrumbs_text} ${style.file_breadcrumbs_link}`} + onClick={() => { + const newPath = treeStore.selectedPath.slice(0, index + 1); + treeStore.updateFilter('selectedPath', newPath); + }} + > + {dirName} + </span> + </> + )); + + return ( + <h3 className={style.file_breadcrumbs}> + <span className={style.file_breadcrumbs_text}> + Адрес: + </span> + <span + className={`${style.file_breadcrumbs_text} ${style.file_breadcrumbs_link}`} + onClick={() => { + treeStore.updateFilter('selectedPath', []); + }} + > + {'..'} + </span> + {directories} + </h3> + ); +}); + +export default FileBreadcrumbs; diff --git a/src/ts/pages/Team/components/TreeFilters.tsx b/src/ts/pages/Team/components/Files/Filters.tsx similarity index 93% rename from src/ts/pages/Team/components/TreeFilters.tsx rename to src/ts/pages/Team/components/Files/Filters.tsx index 083a77f..a2e4b51 100644 --- a/src/ts/pages/Team/components/TreeFilters.tsx +++ b/src/ts/pages/Team/components/Files/Filters.tsx @@ -6,8 +6,8 @@ import dataGripStore from 'ts/store/DataGrip'; import SelectWithButtons from 'ts/components/UiKit/components/SelectWithButtons'; import UiKitInputNumber from 'ts/components/UiKit/components/InputNumber'; -import treeStore from '../store/Tree'; -import style from '../styles/filters.module.scss'; +import treeStore from '../../store/Tree'; +import style from '../../styles/filters.module.scss'; const TreeFilters = observer((): React.ReactElement => { const { t } = useTranslation(); diff --git a/src/ts/pages/Team/components/Files/Table.tsx b/src/ts/pages/Team/components/Files/Table.tsx new file mode 100644 index 0000000..6292df2 --- /dev/null +++ b/src/ts/pages/Team/components/Files/Table.tsx @@ -0,0 +1,156 @@ +import React from 'react'; + +import { IPagination } from 'ts/interfaces/Pagination'; +import { IDirtyFile } from 'ts/interfaces/FileInfo'; +import dataGripStore from 'ts/store/DataGrip'; + +import Table from 'ts/components/Table'; +import Column from 'ts/components/Table/components/Column'; +import { ColumnTypesEnum } from 'ts/components/Table/interfaces/Column'; +import LineChart from 'ts/components/LineChart'; +import getOptions from 'ts/components/LineChart/helpers/getOptions'; + +import { getMax } from 'ts/pages/Common/helpers/getMax'; +import { getDate } from 'ts/helpers/formatter'; + +import treeStore from '../../store/Tree'; + +interface IViewProps { + response?: IPagination<any>; +} + +function View({ response }: IViewProps) { + if (!response) return null; + + const fileSizeChart = getOptions({ max: getMax(response, 'lines'), suffix: 'page.team.tree.line' }); + const addedLinesChart = getOptions({ order: dataGripStore.dataGrip.author.list, suffix: 'page.team.tree.line' }); + const addedRemovedChangedChart = getOptions({ order: [ + 'page.team.tree.lineAdd', + 'page.team.tree.lineChange', + 'page.team.tree.lineRemove', + ], suffix: 'page.team.tree.line' }); + + return ( + <Table + rows={response.content} + disabledRow={(row: any) => { + if (row?.title === '..') return false; + else return true; + const limit = treeStore.minCommits || 0; + const name = dataGripStore.dataGrip.author.list[treeStore.authorId || ''] || ''; + const author = row.file?.authors[name]; + const commits = author?.commits || 0; + return (treeStore.authorId && !author) || (commits < limit); + }} + > + <Column + isFixed + template={ColumnTypesEnum.STRING} + formatter={(row: any) => row?.content ? `📁 ${row?.name}` : `📄 ${row?.name}`} + minWidth={170} + onClick={(row: any) => { + if (!row.content) return; + treeStore.updateFilter('selectedPath', [...row.path, row.name]); + }} + /> + <Column + isSortable + width={50} + properties="lines" + template={ColumnTypesEnum.SHORT_NUMBER} + /> + <Column + isSortable + properties="lines" + minWidth={100} + template={(value: any) => ( + <LineChart + options={fileSizeChart} + value={value} + /> + )} + /> + <Column + isSortable + template={ColumnTypesEnum.STRING} + title="page.team.pr.firstCommitTime" + formatter={(item: any) => getDate(item?.firstCommit?.timestamp)} + width={130} + /> + <Column + isSortable + template={ColumnTypesEnum.STRING} + title="page.team.pr.author" + formatter={(item: any) => item?.firstCommit?.author || ''} + width={150} + /> + <Column + isSortable + template={ColumnTypesEnum.STRING} + title="page.team.pr.lastCommitTime" + formatter={(item: any) => getDate(item?.lastCommit?.timestamp)} + width={130} + /> + <Column + isSortable + template={ColumnTypesEnum.STRING} + title="page.team.pr.author" + formatter={(item: any) => item?.lastCommit?.author || ''} + width={150} + /> + <Column + minWidth={200} + template={(file: IDirtyFile) => ( + <LineChart + value={100} + options={addedRemovedChangedChart} + details={{ + 'page.team.tree.lineAdd': file?.addedRemovedChangedInPercent?.added || 0, + 'page.team.tree.lineRemove': file?.addedRemovedChangedInPercent?.removed || 0, + 'page.team.tree.lineChange': file?.addedRemovedChangedInPercent?.changed || 0, + }} + /> + )} + /> + <Column + title="page.team.tree.add" + minWidth={200} + template={(file: IDirtyFile) => ( + <LineChart + value={100} + options={addedLinesChart} + details={file?.addedByAuthorInPercent} + /> + )} + /> + <Column + title="page.team.tree.change" + minWidth={200} + template={(file: IDirtyFile) => ( + <LineChart + value={100} + options={addedLinesChart} + details={file?.changedByAuthorInPercent} + /> + )} + /> + <Column + title="page.team.tree.remove" + minWidth={200} + template={(file: IDirtyFile) => ( + <LineChart + value={100} + options={addedLinesChart} + details={file?.removedByAuthorInPercent} + /> + )} + /> + </Table> + ); +} + +View.defaultProps = { + response: undefined, +}; + +export default View; diff --git a/src/ts/pages/Team/components/Files/index.tsx b/src/ts/pages/Team/components/Files/index.tsx new file mode 100644 index 0000000..932bd36 --- /dev/null +++ b/src/ts/pages/Team/components/Files/index.tsx @@ -0,0 +1,61 @@ +import React, { useEffect } from 'react'; +import { observer } from 'mobx-react-lite'; +import { useTranslation } from 'react-i18next'; + +import { IPaginationRequest } from 'ts/interfaces/Pagination'; +import dataGripStore from 'ts/store/DataGrip'; + +import PageWrapper from 'ts/components/Page/wrapper'; +import DataLoader from 'ts/components/DataLoader'; +import Pagination from 'ts/components/DataLoader/components/Pagination'; +import getFakeLoader from 'ts/components/DataLoader/helpers/formatter'; +import Title from 'ts/components/Title'; +import NothingFound from 'ts/components/NothingFound'; + +import TreeFilters from './Filters'; +import FileBreadcrumbs from './FileBreadcrumbs'; +import View from './Table'; +import { getContentByPath } from '../../helpers/tree'; +import treeStore from '../../store/Tree'; + +interface ITreeProps { + type?: string +} + +const Tree = observer(({ type }: ITreeProps): React.ReactElement => { + const { t } = useTranslation(); + const fileTree = type === 'removed' + ? dataGripStore.fileGrip.removedTree.tree + : dataGripStore.fileGrip.tree.tree; + + useEffect(() => { + treeStore.updateFilter('selectedPath', []); + }, [type]); + + const content = getContentByPath(fileTree, treeStore.selectedPath); + if (!content?.length) { + return <NothingFound />; + } + + return ( + <> + <Title title={t('common.filters')} /> + <TreeFilters/> + <FileBreadcrumbs /> + <PageWrapper template="table"> + <DataLoader + to="response" + loader={(pagination?: IPaginationRequest) => getFakeLoader({ + content, pagination: { ...pagination, size: 2000 }, + })} + watch={`${treeStore.hash}${type}`} + > + <View /> + <Pagination /> + </DataLoader> + </PageWrapper> + </> + ); +}); + +export default Tree; diff --git a/src/ts/pages/Team/components/PR/All.tsx b/src/ts/pages/Team/components/PR/All.tsx index c52671e..a490285 100644 --- a/src/ts/pages/Team/components/PR/All.tsx +++ b/src/ts/pages/Team/components/PR/All.tsx @@ -36,7 +36,6 @@ function AllPR({ order: dataGripStore.dataGrip.author.list, }); - console.log(commitsChart); return ( <DataView rowsForExcel={rowsForExcel} diff --git a/src/ts/pages/Team/components/Top.tsx b/src/ts/pages/Team/components/Top.tsx index 9c687c0..365dc23 100644 --- a/src/ts/pages/Team/components/Top.tsx +++ b/src/ts/pages/Team/components/Top.tsx @@ -23,7 +23,7 @@ import { getDate } from 'ts/helpers/formatter'; import style from '../styles/quiz.module.scss'; const Top = observer((): React.ReactElement => { - const extensions = dataGripStore.dataGrip.extension.statistic + const extensions = dataGripStore.fileGrip.extension.statistic .slice(0, 4).map((statistic: any) => { return ( <Extension diff --git a/src/ts/pages/Team/components/Tree.tsx b/src/ts/pages/Team/components/Tree.tsx deleted file mode 100644 index ba3992c..0000000 --- a/src/ts/pages/Team/components/Tree.tsx +++ /dev/null @@ -1,199 +0,0 @@ -import React, { useEffect } from 'react'; -import { observer } from 'mobx-react-lite'; -import { useTranslation } from 'react-i18next'; - -import { IPaginationRequest, IPagination } from 'ts/interfaces/Pagination'; -import dataGripStore from 'ts/store/DataGrip'; - -import PageWrapper from 'ts/components/Page/wrapper'; -import DataLoader from 'ts/components/DataLoader'; -import Pagination from 'ts/components/DataLoader/components/Pagination'; -import getFakeLoader from 'ts/components/DataLoader/helpers/formatter'; -import Title from 'ts/components/Title'; -import Table from 'ts/components/Table'; -import Column from 'ts/components/Table/components/Column'; -import { ColumnTypesEnum } from 'ts/components/Table/interfaces/Column'; -import LineChart from 'ts/components/LineChart'; -import getOptions from 'ts/components/LineChart/helpers/getOptions'; -import NothingFound from 'ts/components/NothingFound'; - -import { getDate } from 'ts/helpers/formatter'; - -import TreeFilters from './TreeFilters'; -import { getSubTreeByPath, getArrayFromTree } from '../helpers/tree'; -import treeStore from '../store/Tree'; - -interface ITreeViewProps { - response?: IPagination<any>; -} - -function TreeView({ response }: ITreeViewProps) { - if (!response) return null; - - const getDetails = (file: any, property: string) => { - if (!file) return {}; - return Object.keys(file.authors || {}) - .reduce((details: any, name: any) => { - details[name] = file.authors[name][property]; - return details; - }, {}); - }; - - const fileChart = getOptions({ order: dataGripStore.dataGrip.author.list, suffix: 'строк' }); - const rewriteChart = getOptions({ order: [ - 'page.team.tree.lineAdd', - 'page.team.tree.lineRemove', - ], suffix: 'page.team.tree.line' }); - - console.log(response.content); - return ( - <Table - rows={response.content} - disabledRow={(row: any) => { - if (row?.title === '..') return false; - const limit = treeStore.minCommits || 0; - const name = dataGripStore.dataGrip.author.list[treeStore.authorId || ''] || ''; - const author = row.file?.authors[name]; - const commits = author?.commits || 0; - return (treeStore.authorId && !author) || (commits < limit); - }} - > - <Column - isFixed - template={ColumnTypesEnum.STRING} - properties="title" - minWidth={200} - onClick={(row: any) => { - treeStore.updateFilter('selectedPath', row.path || []); - }} - /> - <Column - isSortable - template={ColumnTypesEnum.STRING} - title="page.team.pr.firstCommitTime" - formatter={(item: any) => getDate(item?.file?.firstCommit?.timestamp)} - width={130} - /> - <Column - isSortable - template={ColumnTypesEnum.STRING} - title="page.team.pr.author" - formatter={(item: any) => item?.file?.firstCommit?.author || ''} - width={150} - /> - <Column - isSortable - template={ColumnTypesEnum.STRING} - title="page.team.pr.lastCommitTime" - formatter={(item: any) => getDate(item?.file?.lastCommit?.timestamp)} - width={130} - /> - <Column - isSortable - template={ColumnTypesEnum.STRING} - title="page.team.pr.author" - formatter={(item: any) => item?.file?.lastCommit?.author || ''} - width={150} - /> - <Column - properties="file" - minWidth={200} - template={(file: any) => ( - <LineChart - value={file ? 100 : 0} - options={rewriteChart} - details={{ - 'page.team.tree.lineAdd': file?.lines || 0, - 'page.team.tree.lineRemove': (file?.total?.changes || 0) + (file?.total?.removed || 0), - }} - /> - )} - /> - <Column - title="page.team.tree.add" - properties="file" - minWidth={200} - template={(file: any) => ( - <LineChart - value={file?.total?.added ? 100 : 0} - options={fileChart} - details={getDetails(file, 'addedPercent')} - /> - )} - /> - <Column - title="page.team.tree.change" - properties="file" - minWidth={200} - template={(file: any) => ( - <LineChart - value={file?.total?.changes ? 100 : 0} - options={fileChart} - details={getDetails(file, 'changesPercent')} - /> - )} - /> - <Column - title="page.team.tree.remove" - properties="file" - minWidth={200} - template={(file: any) => ( - <LineChart - value={file?.total?.removed ? 100 : 0} - options={fileChart} - details={getDetails(file, 'removedPercent')} - /> - )} - /> - </Table> - ); -} - -TreeView.defaultProps = { - response: undefined, -}; - -interface ITreeProps { - type?: string -} - -const Tree = observer(({ type }: ITreeProps): React.ReactElement => { - const { t } = useTranslation(); - const fileTree = type === 'removed' - ? dataGripStore.removedFileTree - : dataGripStore.fileTree; - const subTree = getSubTreeByPath(fileTree, treeStore.selectedPath); - const fileList = getArrayFromTree(subTree); - console.dir(dataGripStore.removedFileTree); - console.dir(fileList); - - // @ts-ignore - if (!fileTree?.lines) return <NothingFound />; - - useEffect(() => { - treeStore.updateFilter('selectedPath', []); - }, [type]); - - return ( - <> - <Title title={t('common.filters')} /> - <TreeFilters/> - {false && treeStore.selectedPath?.join('/')} - <Title title="page.team.tree.title"/> - <PageWrapper template="table"> - <DataLoader - to="response" - loader={(pagination?: IPaginationRequest) => getFakeLoader({ - content: fileList, pagination: { ...pagination, size: 500 }, - })} - watch={`${treeStore.hash}${type}`} - > - <TreeView /> - <Pagination /> - </DataLoader> - </PageWrapper> - </> - ); -}); - -export default Tree; diff --git a/src/ts/pages/Team/helpers/tree.ts b/src/ts/pages/Team/helpers/tree.ts index d5bcbda..a8d8a91 100644 --- a/src/ts/pages/Team/helpers/tree.ts +++ b/src/ts/pages/Team/helpers/tree.ts @@ -1,58 +1,22 @@ -import { IFileTree } from 'ts/interfaces/FileInfo'; +import { IFolder } from 'ts/interfaces/FileInfo'; -interface IFile { - name: string; - path: string[]; - content: IFile[]; -} - -export function getSubTreeByPath(tree: IFileTree, path: string[]) { - let subTree: any = tree || { content: [] }; - (path || []).forEach((folderName: string) => { +function getSubTree(tree: IFolder, path: string[]) { + return (path || []).reduce((subTree: any, folderName: string) => { subTree = subTree.content[folderName] || { content: [] }; - }); - return subTree; + return subTree; + }, tree || { content: [] }); } - -function getButtonUp(file: IFile) { - return file?.path?.length ? ({ - title: '..', - path: file.path.slice(0, -1), - }) : null; +function getSortedContent(subTree: any) { + return Object.values(subTree.content) + .sort((a: any, b: any) => { + if (a.content && !b.content) return -1; + if (!a.content && b.content) return 1; + if (a.name === b.name) return 0; + return a.name > b.name ? 1 : -1; + }); } -function getFolderView(file: IFile) { - return { - file, - title: `📁 ${file.name}`, - path: file.path, - }; +export function getContentByPath(fileTree: IFolder, path: string[]) { + return getSortedContent(getSubTree(fileTree, path)); } - -function getFileView(file: IFile) { - return { - file, - title: `📄 ${file.name.split('/').pop() || ''}`, - }; -} - -export function getArrayFromTree(tree: any) { - const folders = []; - const files = []; - - for (let name in tree.content) { - const file = tree.content[name]; - if (file.content) { - folders.push(getFolderView(file)); - } else { - files.push(getFileView(file)); - } - } - - return [ - getButtonUp(tree), - ...folders, - ...files, - ].filter(v => v); -} \ No newline at end of file diff --git a/src/ts/pages/Team/index.tsx b/src/ts/pages/Team/index.tsx index ef1bc7b..3e5a38c 100644 --- a/src/ts/pages/Team/index.tsx +++ b/src/ts/pages/Team/index.tsx @@ -12,8 +12,8 @@ import PopularWords from './components/PopularWords'; import Scope from './components/Scope'; import Tempo from './components/Tempo'; import Total from './components/Total'; -import Tree from './components/Tree'; -import Extension from './components/Extension2'; +import Files from './components/Files'; +import FileAnalitics from './components/FileAnalitics'; import Type from './components/Type'; import Week from './components/Week'; import Month from './components/Month'; @@ -34,9 +34,9 @@ function getViewById(page?: string) { if (page === 'week') return <Week mode={mode}/>; if (page === 'month') return <Month mode={mode}/>; if (page === 'hours') return <Hours mode={mode}/>; - if (page === 'files') return <Tree/>; - if (page === 'removedFiles') return <Tree type="removed" />; - if (page === 'extension') return <Extension mode={mode}/>; + if (page === 'files') return <Files/>; + if (page === 'removedFiles') return <Files type="removed" />; + if (page === 'extension') return <FileAnalitics mode={mode}/>; if (page === 'release') return <Release mode={mode}/>; if (page === 'commits') return <Commits/>; if (page === 'changes') return <Changes/>; diff --git a/src/ts/pages/Team/styles/path.module.scss b/src/ts/pages/Team/styles/path.module.scss new file mode 100644 index 0000000..153c682 --- /dev/null +++ b/src/ts/pages/Team/styles/path.module.scss @@ -0,0 +1,26 @@ +@import 'src/styles/variables'; + +.file_breadcrumbs { + margin: 0 0 24px 0; + + &_text { + font-size: var(--font-l); + font-weight: 100; + + display: inline-block; + margin-right: var(--space-m); + + text-decoration: none; + vertical-align: top; + + color: var(--color-black); + } + + &_link { + cursor: pointer; + + &:hover { + text-decoration: underline; + } + } +} diff --git a/src/ts/pages/Welcome/index.tsx b/src/ts/pages/Welcome/index.tsx index 583aa2b..4dd7892 100644 --- a/src/ts/pages/Welcome/index.tsx +++ b/src/ts/pages/Welcome/index.tsx @@ -27,7 +27,7 @@ function WarningInfo() { } function Welcome() { - const command = 'git --no-pager log --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt\n'; + const command = 'git --no-pager log --raw --numstat --oneline --all --reverse --date=iso-strict --pretty=format:"%ad>%cN>%cE>%s" > log.txt\n'; return ( <> {process.env.REACT_APP_TYPE !== 'local' && (<WarningInfo />)} diff --git a/src/ts/store/DataGrip.ts b/src/ts/store/DataGrip.ts index 8d80be8..a8723c1 100644 --- a/src/ts/store/DataGrip.ts +++ b/src/ts/store/DataGrip.ts @@ -1,13 +1,14 @@ import { makeObservable, observable, action } from 'mobx'; import ICommit, { ISystemCommit } from 'ts/interfaces/Commit'; -import { IDirtyFile, IFileTree } from 'ts/interfaces/FileInfo'; + import achievements from 'ts/helpers/achievement/byCompetition'; import dataGrip from 'ts/helpers/DataGrip'; -import getFileTreeWithStatistic from 'ts/helpers/DataGrip/helpers/tree'; +import fileGrip from 'ts/helpers/FileGrip'; import Parser from 'ts/helpers/Parser'; -import { setDefaultValues } from 'ts/pages/Settings/helpers/getEmptySettings'; import getTitle from 'ts/helpers/Title'; + +import { setDefaultValues } from 'ts/pages/Settings/helpers/getEmptySettings'; import { applicationHasCustom } from 'ts/helpers/RPC'; import settingsStore from './Settings'; @@ -21,6 +22,7 @@ export enum DataParseStatusEnum { interface IDataGripStore { commits: ICommit[]; dataGrip: any; + fileGrip: any; status: DataParseStatusEnum; setCommits: (log?: string[]) => void; } @@ -28,16 +30,10 @@ interface IDataGripStore { class DataGripStore implements IDataGripStore { commits: any[] = []; - fileList: IDirtyFile[] = []; - - fileTree: IFileTree = {} as IFileTree; - - removedFileList: IDirtyFile[] = []; - - removedFileTree: IFileTree = {} as IFileTree; - dataGrip: any = null; + fileGrip: any = null; + status: DataParseStatusEnum = DataParseStatusEnum.PROCESSING; constructor() { @@ -51,25 +47,18 @@ class DataGripStore implements IDataGripStore { setCommits(dump?: string[]) { dataGrip.clear(); - const parser = Parser; + fileGrip.clear(); - const { - commits, - fileList, - fileTree, - removed, - } = parser(dump || []); + const commits = Parser(dump || []); commits.sort((a, b) => a.milliseconds - b.milliseconds); commits.forEach((commit: ICommit | ISystemCommit) => { dataGrip.addCommit(commit); + fileGrip.addCommit(commit); }); + fileGrip.updateTotalInfo(); this.commits = commits; - this.fileList = fileList; - this.fileTree = getFileTreeWithStatistic(fileTree); - this.removedFileList = removed.fileList; - this.removedFileTree = getFileTreeWithStatistic(removed.fileTree); this.status = this.commits.length ? DataParseStatusEnum.DONE @@ -84,16 +73,17 @@ class DataGripStore implements IDataGripStore { ); dataGrip.updateByInitialization(); - dataGrip.updateByFiles(fileList, removed.fileList); - achievements.updateByDataGrip(dataGrip); + achievements.updateByGrip(dataGrip, fileGrip); } this.dataGrip = null; this.dataGrip = dataGrip; + this.fileGrip = fileGrip; console.dir(this.dataGrip); + console.dir(this.fileGrip); if (!applicationHasCustom.title) { - document.title = getTitle(this.dataGrip, this.commits); + document.title = getTitle(this.dataGrip, this.fileGrip, this.commits); } } @@ -101,7 +91,7 @@ class DataGripStore implements IDataGripStore { console.log('need update data TODO'); dataGrip.updateByFilters(); if (!dataGrip.author.list.length) return; - achievements.updateByDataGrip(dataGrip); + achievements.updateByGrip(dataGrip, fileGrip); this.dataGrip = null; this.dataGrip = dataGrip; } diff --git a/src/ts/translations/ru/achievements.ts b/src/ts/translations/ru/achievements.ts index 5e0a03c..b85a0b8 100644 --- a/src/ts/translations/ru/achievements.ts +++ b/src/ts/translations/ru/achievements.ts @@ -45,24 +45,24 @@ export default ` § achievements.moreDaysForTask.description: работа по задачам идёт медленнее чем у остальных § achievements.more2DaysForTask.title: Cо слоу § achievements.more2DaysForTask.description: больше двух дней на задачу -§ achievements.moreDaysInProject.title: Часть команды, часть коробля -§ achievements.moreDaysInProject.description: больше всего дней на проекте § achievements.more3YearsInProject.title: Старожил § achievements.more3YearsInProject.description: больше трех лет на проекте § achievements.lessDaysInProject.title: А это кто? § achievements.lessDaysInProject.description: меньше всего дней на проекте -§ achievements.more90DaysInProject.title: Добро пожаловать -§ achievements.more90DaysInProject.description: не уволили на испытательном § achievements.lessDaysForTask.title: Скорострел § achievements.lessDaysForTask.description: одна задача занимает меньше дня § achievements.adam.title: Адам § achievements.adam.description: первый стабильный сотрудник на проекте +§ achievements.more90DaysInProject.title: Добро пожаловать +§ achievements.more90DaysInProject.description: не уволили на испытательном § achievements.more365DaysInProject.title: Годовасик § achievements.more365DaysInProject.description: отработал год на проекте § achievements.more666DaysInProject.title: Чёрт § achievements.more666DaysInProject.description: отработал 666 дней на проекте § achievements.more777DaysInProject.title: Азино 3 топора § achievements.more777DaysInProject.description: отработал 777 дней на проекте +§ achievements.moreDaysInProject.title: Часть команды, часть коробля +§ achievements.moreDaysInProject.description: больше всего дней на проекте § achievements.moreRefactoring.title: Выпускающий редактор § achievements.moreRefactoring.description: сделал больше всех меток «рефакторинг» § achievements.longestMessage.title: А разговоров то было...