mirror of
https://github.com/bakhirev/assayo.git
synced 2025-09-05 03:59:50 +00:00
update
This commit is contained in:
parent
7602bcef4d
commit
38a4c872b0
18 changed files with 117 additions and 80 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -95,6 +95,11 @@
|
||||||
|
|
||||||
&_button {
|
&_button {
|
||||||
color: var(--color-temp-title);
|
color: var(--color-temp-title);
|
||||||
|
background-color: var(--color-temp-bg);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--color-temp-bg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
background-color: var(--color-temp-bg);
|
background-color: var(--color-temp-bg);
|
||||||
|
|
|
@ -13,6 +13,7 @@ const MASTER_BRANCH = {
|
||||||
master: true,
|
master: true,
|
||||||
dev: true,
|
dev: true,
|
||||||
develop: true,
|
develop: true,
|
||||||
|
release: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let prevDate = new Date();
|
let prevDate = new Date();
|
||||||
|
@ -105,6 +106,7 @@ export default function getCommitInfo(logString: string): ICommit | ISystemCommi
|
||||||
commitType = COMMIT_TYPE.PR_GITHUB;
|
commitType = COMMIT_TYPE.PR_GITHUB;
|
||||||
[prId, repository, branch, toBranch] = getGithubPrInfo(message);
|
[prId, repository, branch, toBranch] = getGithubPrInfo(message);
|
||||||
task = getTask(branch);
|
task = getTask(branch);
|
||||||
|
[type] = getTypeAndScope(branch, task);
|
||||||
|
|
||||||
} else if (isBitbucketPR) { // "Pull request #3: TASK-123 fix: Add profile"
|
} else if (isBitbucketPR) { // "Pull request #3: TASK-123 fix: Add profile"
|
||||||
commitType = COMMIT_TYPE.PR_BITBUCKET;
|
commitType = COMMIT_TYPE.PR_BITBUCKET;
|
||||||
|
@ -124,11 +126,15 @@ export default function getCommitInfo(logString: string): ICommit | ISystemCommi
|
||||||
} else if (isGitlabPR) {
|
} else if (isGitlabPR) {
|
||||||
commitType = COMMIT_TYPE.PR_GITLAB;
|
commitType = COMMIT_TYPE.PR_GITLAB;
|
||||||
[branch, toBranch] = getGitlabPrInfo(message);
|
[branch, toBranch] = getGitlabPrInfo(message);
|
||||||
if (toBranch && MASTER_BRANCH[toBranch]) {
|
const branchToParse = toBranch && MASTER_BRANCH[toBranch]
|
||||||
task = getTask(branch);
|
? (branch || toBranch)
|
||||||
taskNumber = getTaskNumber(branch);
|
: (toBranch || branch);
|
||||||
|
if (branchToParse) {
|
||||||
|
task = getTask(branchToParse);
|
||||||
|
taskNumber = getTaskNumber(branchToParse);
|
||||||
prId = `#${taskNumber}-${Math.random()}`;
|
prId = `#${taskNumber}-${Math.random()}`;
|
||||||
if (!task && taskNumber) task = `#${taskNumber}`;
|
if (!task && taskNumber) task = `#${taskNumber}`;
|
||||||
|
[type] = getTypeAndScope(branchToParse, task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
taskNumber = getTaskNumber(task);
|
taskNumber = getTaskNumber(task);
|
||||||
|
|
|
@ -15,10 +15,9 @@ export function getGithubPrInfo(text: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "Merge branch 'J123456' into 'develop'" */
|
/* "Merge branch 'J123456' into 'develop'" */
|
||||||
|
/* "Merge branch 'J123456' into develop" */
|
||||||
export function getGitlabPrInfo(text: string) {
|
export function getGitlabPrInfo(text: string) {
|
||||||
const prefix = text.substring(14, text.length - 1);
|
return text
|
||||||
const index = prefix.indexOf("'");
|
.replace(/(["'\r\n]+)|(Merge\sbranch\s)/gim, '')
|
||||||
const branch = prefix.substring(0, index);
|
.split(' into ');
|
||||||
const toBranch = prefix.substring(index + 8);
|
|
||||||
return [branch, toBranch];
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,57 +18,60 @@ const Header = observer((): React.ReactElement | null => {
|
||||||
const { t, i18n } = useTranslation();
|
const { t, i18n } = useTranslation();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
const options = [
|
||||||
|
{ id: 'ru', title: 'RU' },
|
||||||
|
{ id: 'en', title: 'EN' },
|
||||||
|
{ id: 'zh', title: 'ZH' },
|
||||||
|
{ id: 'es', title: 'ES' },
|
||||||
|
{ id: 'fr', title: 'FR' },
|
||||||
|
{ id: 'pt', title: 'PT' },
|
||||||
|
{ id: 'de', title: 'DE' },
|
||||||
|
{ id: 'ja', title: 'JA' },
|
||||||
|
{ id: 'ko', title: 'KO' },
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className={style.header}>
|
<header className={style.header}>
|
||||||
<Title/>
|
<div className={style.header_wrapper}>
|
||||||
{settingsForm.isEdited ? (
|
<Title/>
|
||||||
<Buttons/>
|
{settingsForm.isEdited ? (
|
||||||
) : (
|
<Buttons/>
|
||||||
<>
|
) : (
|
||||||
<Filters/>
|
<>
|
||||||
<Select
|
<Filters/>
|
||||||
className={style.header_lang}
|
<Select
|
||||||
value={localization.language}
|
className={style.header_lang}
|
||||||
options={[
|
value={localization.language}
|
||||||
{ id: 'ru', title: 'RU' },
|
options={options}
|
||||||
{ id: 'en', title: 'EN' },
|
onChange={(item: any, id: string) => {
|
||||||
{ id: 'zh', title: 'ZH' },
|
localization.language = id;
|
||||||
{ id: 'es', title: 'ES' },
|
i18n.changeLanguage(id);
|
||||||
{ id: 'fr', title: 'FR' },
|
if (id === BROWSER_LANGUAGE) {
|
||||||
{ id: 'pt', title: 'PT' },
|
localStorage.removeItem('language');
|
||||||
{ id: 'de', title: 'DE' },
|
} else {
|
||||||
{ id: 'ja', title: 'JA' },
|
localStorage.setItem('language', id);
|
||||||
{ id: 'ko', title: 'KO' },
|
}
|
||||||
]}
|
}}
|
||||||
onChange={(item: any, id: string) => {
|
/>
|
||||||
localization.language = id;
|
<img
|
||||||
i18n.changeLanguage(id);
|
title={t('sidebar.buttons.print')}
|
||||||
if (id === BROWSER_LANGUAGE) {
|
className={style.header_print}
|
||||||
localStorage.removeItem('language');
|
src="./assets/menu/print.svg"
|
||||||
} else {
|
onClick={() => {
|
||||||
localStorage.setItem('language', id);
|
printStore.open(navigate, location.pathname);
|
||||||
}
|
}}
|
||||||
}}
|
/>
|
||||||
/>
|
<img
|
||||||
<img
|
title={t('sidebar.buttons.settings')}
|
||||||
title={t('sidebar.buttons.print')}
|
className={style.header_setting}
|
||||||
className={style.header_print}
|
src="./assets/menu/setting.svg"
|
||||||
src="./assets/menu/print.svg"
|
onClick={() => {
|
||||||
onClick={() => {
|
navigate('/settings');
|
||||||
printStore.open(navigate, location.pathname);
|
}}
|
||||||
}}
|
/>
|
||||||
/>
|
</>
|
||||||
<img
|
)}
|
||||||
title={t('sidebar.buttons.settings')}
|
</div>
|
||||||
className={style.header_setting}
|
|
||||||
src="./assets/menu/setting.svg"
|
|
||||||
onClick={() => {
|
|
||||||
navigate('/settings');
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</header>
|
</header>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -3,11 +3,18 @@
|
||||||
.header {
|
.header {
|
||||||
grid-area: header;
|
grid-area: header;
|
||||||
display: block;
|
display: block;
|
||||||
padding: 20px 34px 20px 24px;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
text-align: right;
|
text-align: left;
|
||||||
background-color: var(--color-white);
|
background-color: var(--color-white);
|
||||||
|
|
||||||
|
&_wrapper {
|
||||||
|
display: block;
|
||||||
|
width: calc(100vw - 258px);
|
||||||
|
padding: 20px 47px 20px 24px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
&_title {
|
&_title {
|
||||||
float: left;
|
float: left;
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
|
@ -56,6 +63,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1000px) {
|
||||||
|
.header_wrapper {
|
||||||
|
width: calc(100vw - 78px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media (max-width: 700px) {
|
@media (max-width: 700px) {
|
||||||
.header {
|
.header {
|
||||||
&_print,
|
&_print,
|
||||||
|
|
|
@ -14,23 +14,33 @@ function groupByType(prs: any[]) {
|
||||||
}, {});
|
}, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTaskDescription(pr: any) {
|
function getTaskDescription(pr: any, taskById: any) {
|
||||||
const message = pr.message.substring(pr.message.lastIndexOf(':') + 2)
|
let message = pr.message.substring(pr.message.lastIndexOf(':') + 2)
|
||||||
.replace(pr.task, '')
|
.replace(pr.task, '')
|
||||||
.trim();
|
.trim();
|
||||||
|
|
||||||
const prefix = userSettings?.settings?.linksPrefix?.task || '/';
|
const prefix = userSettings?.settings?.linksPrefix?.task || '/';
|
||||||
const formattedTask = pr.task?.[0] === '#'
|
const taskId = pr.task?.[0] === '#'
|
||||||
? pr.task.replace('#', '')
|
? pr.task.replace('#', '')
|
||||||
: pr.task;
|
: pr.task;
|
||||||
|
const task = taskById.get(taskId);
|
||||||
|
const formattedTask = task?.task || taskId;
|
||||||
|
message = message.indexOf('pull request') !== -1
|
||||||
|
? (task?.comments || '')
|
||||||
|
: message;
|
||||||
|
if (!formattedTask && !message) return '';
|
||||||
return `- [${formattedTask}](${prefix}${formattedTask}) ${message}`;
|
return `- [${formattedTask}](${prefix}${formattedTask}) ${message}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getReleaseDescription(prs: any) {
|
function getReleaseDescription(prs: any, taskById: any) {
|
||||||
const types = groupByType(prs);
|
const types = groupByType(prs);
|
||||||
return Object.keys(types)
|
return Object.keys(types)
|
||||||
.sort()
|
.sort()
|
||||||
.map((type: string) => {
|
.map((type: string) => {
|
||||||
const tasks = types[type].map(getTaskDescription).join('\n');
|
const tasks = types[type]
|
||||||
|
.map((pr: any) => getTaskDescription(pr, taskById))
|
||||||
|
.filter((v: string) => v)
|
||||||
|
.join('\n');
|
||||||
if (!type) return `\n${tasks}`;
|
if (!type) return `\n${tasks}`;
|
||||||
return `\n### ${type}\n${tasks}`;
|
return `\n### ${type}\n${tasks}`;
|
||||||
}).join('\n');
|
}).join('\n');
|
||||||
|
@ -40,10 +50,11 @@ function getChangeLogString() {
|
||||||
const rows = dataGripStore.dataGrip.release.statistic;
|
const rows = dataGripStore.dataGrip.release.statistic;
|
||||||
const list = rows.map((release: any) => {
|
const list = rows.map((release: any) => {
|
||||||
const date = getDateForExcel(release.lastCommit.date);
|
const date = getDateForExcel(release.lastCommit.date);
|
||||||
const prs = release.pr
|
const prs = release.prIds
|
||||||
.map((prId: string) => dataGripStore.dataGrip.pr.pr.get(prId))
|
.map((prId: string) => dataGripStore.dataGrip.pr.pr.get(prId))
|
||||||
.filter((v: any) => v);
|
.filter((v: any) => v);
|
||||||
const description = getReleaseDescription(prs);
|
const taskById = dataGripStore.dataGrip.tasks.statisticByName;
|
||||||
|
const description = getReleaseDescription(prs, taskById);
|
||||||
return `
|
return `
|
||||||
## [${release.title}] - ${date}
|
## [${release.title}] - ${date}
|
||||||
${description}`;
|
${description}`;
|
||||||
|
|
|
@ -219,7 +219,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Number
|
§ page.team.extension.current.count: Number
|
||||||
§ page.team.extension.removed.count: Number of removed
|
§ page.team.extension.removed.count: Number of removed
|
||||||
§ page.team.extension.files: files
|
§ page.team.extension.files: files
|
||||||
§ page.team.release.download: Download
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Release
|
§ page.team.release.title: Release
|
||||||
§ page.team.release.from: Created date
|
§ page.team.release.from: Created date
|
||||||
§ page.team.release.to: Delivery date
|
§ page.team.release.to: Delivery date
|
||||||
|
|
|
@ -221,7 +221,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Number
|
§ page.team.extension.current.count: Number
|
||||||
§ page.team.extension.removed.count: Number of removed
|
§ page.team.extension.removed.count: Number of removed
|
||||||
§ page.team.extension.files: files
|
§ page.team.extension.files: files
|
||||||
§ page.team.release.download: Download
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Release
|
§ page.team.release.title: Release
|
||||||
§ page.team.release.from: Created date
|
§ page.team.release.from: Created date
|
||||||
§ page.team.release.to: Delivery date
|
§ page.team.release.to: Delivery date
|
||||||
|
|
|
@ -221,7 +221,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Number
|
§ page.team.extension.current.count: Number
|
||||||
§ page.team.extension.removed.count: Number of removed
|
§ page.team.extension.removed.count: Number of removed
|
||||||
§ page.team.extension.files: files
|
§ page.team.extension.files: files
|
||||||
§ page.team.release.download: Download
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Release
|
§ page.team.release.title: Release
|
||||||
§ page.team.release.from: Created date
|
§ page.team.release.from: Created date
|
||||||
§ page.team.release.to: Delivery date
|
§ page.team.release.to: Delivery date
|
||||||
|
|
|
@ -221,7 +221,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Number
|
§ page.team.extension.current.count: Number
|
||||||
§ page.team.extension.removed.count: Number of removed
|
§ page.team.extension.removed.count: Number of removed
|
||||||
§ page.team.extension.files: files
|
§ page.team.extension.files: files
|
||||||
§ page.team.release.download: Download
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Release
|
§ page.team.release.title: Release
|
||||||
§ page.team.release.from: Created date
|
§ page.team.release.from: Created date
|
||||||
§ page.team.release.to: Delivery date
|
§ page.team.release.to: Delivery date
|
||||||
|
|
|
@ -221,7 +221,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Number
|
§ page.team.extension.current.count: Number
|
||||||
§ page.team.extension.removed.count: Number of removed
|
§ page.team.extension.removed.count: Number of removed
|
||||||
§ page.team.extension.files: files
|
§ page.team.extension.files: files
|
||||||
§ page.team.release.download: Download
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Release
|
§ page.team.release.title: Release
|
||||||
§ page.team.release.from: Created date
|
§ page.team.release.from: Created date
|
||||||
§ page.team.release.to: Delivery date
|
§ page.team.release.to: Delivery date
|
||||||
|
|
|
@ -221,7 +221,7 @@ export default `
|
||||||
§ page.team.extension.current.count: 수량
|
§ page.team.extension.current.count: 수량
|
||||||
§ page.team.extension.removed.count: 삭제된 수
|
§ page.team.extension.removed.count: 삭제된 수
|
||||||
§ page.team.extension.files: 파일
|
§ page.team.extension.files: 파일
|
||||||
§ page.team.release.download: 다운로드
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: 릴리스
|
§ page.team.release.title: 릴리스
|
||||||
§ page.team.release.from: 생성 날짜
|
§ page.team.release.from: 생성 날짜
|
||||||
§ page.team.release.to: 완료 날짜
|
§ page.team.release.to: 완료 날짜
|
||||||
|
|
|
@ -221,7 +221,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Number
|
§ page.team.extension.current.count: Number
|
||||||
§ page.team.extension.removed.count: Number of removed
|
§ page.team.extension.removed.count: Number of removed
|
||||||
§ page.team.extension.files: files
|
§ page.team.extension.files: files
|
||||||
§ page.team.release.download: Download
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Release
|
§ page.team.release.title: Release
|
||||||
§ page.team.release.from: Created date
|
§ page.team.release.from: Created date
|
||||||
§ page.team.release.to: Delivery date
|
§ page.team.release.to: Delivery date
|
||||||
|
|
|
@ -221,7 +221,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Количество
|
§ page.team.extension.current.count: Количество
|
||||||
§ page.team.extension.removed.count: Количество удалённых
|
§ page.team.extension.removed.count: Количество удалённых
|
||||||
§ page.team.extension.files: файлов
|
§ page.team.extension.files: файлов
|
||||||
§ page.team.release.download: Скачать
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Релиз
|
§ page.team.release.title: Релиз
|
||||||
§ page.team.release.from: Дата создания
|
§ page.team.release.from: Дата создания
|
||||||
§ page.team.release.to: Дата завершения
|
§ page.team.release.to: Дата завершения
|
||||||
|
|
|
@ -212,7 +212,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Количество
|
§ page.team.extension.current.count: Количество
|
||||||
§ page.team.extension.removed.count: Количество удалённых
|
§ page.team.extension.removed.count: Количество удалённых
|
||||||
§ page.team.extension.files: файлов
|
§ page.team.extension.files: файлов
|
||||||
§ page.team.release.download: Скачать
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Релиз
|
§ page.team.release.title: Релиз
|
||||||
§ page.team.release.from: Дата создания
|
§ page.team.release.from: Дата создания
|
||||||
§ page.team.release.to: Дата завершения
|
§ page.team.release.to: Дата завершения
|
||||||
|
|
|
@ -216,7 +216,7 @@ export default `
|
||||||
§ page.team.extension.current.count: Number
|
§ page.team.extension.current.count: Number
|
||||||
§ page.team.extension.removed.count: Number of removed
|
§ page.team.extension.removed.count: Number of removed
|
||||||
§ page.team.extension.files: files
|
§ page.team.extension.files: files
|
||||||
§ page.team.release.download: Download
|
§ page.team.release.download: CHANGELOG.md
|
||||||
§ page.team.release.title: Release
|
§ page.team.release.title: Release
|
||||||
§ page.team.release.from: Created date
|
§ page.team.release.from: Created date
|
||||||
§ page.team.release.to: Delivery date
|
§ page.team.release.to: Delivery date
|
||||||
|
|
Loading…
Add table
Reference in a new issue