From b9d29e69101fc30471cab4f0cce3b79426e23fa2 Mon Sep 17 00:00:00 2001 From: Ilya Date: Thu, 24 Oct 2024 12:03:23 +0200 Subject: [PATCH 1/7] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a28509bab7..1a0447b126 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -6,6 +6,7 @@ * [ ] Have you run the linter (`npm run lint`) prior to submission? Enable the git hook on commit in your IDE to run it and format the code automatically. * [ ] Have you run the tests locally and added/updated them if needed? * [ ] Have you checked that app can be built (`npm run build`)? +* [ ] Have you checked that no new circular dependencies appreared with your changes? * [ ] Have you made sure that all the necessary pipelines has been successfully completed? * [ ] If the task requires translations to be updated, have you done this by running the `manage:translations` script? From 298a7bbd55d32b91c2496de1613581de809b7143 Mon Sep 17 00:00:00 2001 From: Ilya Date: Thu, 24 Oct 2024 12:06:45 +0200 Subject: [PATCH 2/7] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1a0447b126..357d59b78f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -6,7 +6,7 @@ * [ ] Have you run the linter (`npm run lint`) prior to submission? Enable the git hook on commit in your IDE to run it and format the code automatically. * [ ] Have you run the tests locally and added/updated them if needed? * [ ] Have you checked that app can be built (`npm run build`)? -* [ ] Have you checked that no new circular dependencies appreared with your changes? +* [ ] Have you checked that no new circular dependencies appreared with your changes? (The webpack plugin reports circular dependencies within the `dev` npm script.) * [ ] Have you made sure that all the necessary pipelines has been successfully completed? * [ ] If the task requires translations to be updated, have you done this by running the `manage:translations` script? From 057c118134192a4ba556d628f26f9582d3eac546 Mon Sep 17 00:00:00 2001 From: Ilya Date: Thu, 24 Oct 2024 12:07:00 +0200 Subject: [PATCH 3/7] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 357d59b78f..4bdd615eb2 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -6,7 +6,7 @@ * [ ] Have you run the linter (`npm run lint`) prior to submission? Enable the git hook on commit in your IDE to run it and format the code automatically. * [ ] Have you run the tests locally and added/updated them if needed? * [ ] Have you checked that app can be built (`npm run build`)? -* [ ] Have you checked that no new circular dependencies appreared with your changes? (The webpack plugin reports circular dependencies within the `dev` npm script.) +* [ ] Have you checked that no new circular dependencies appreared with your changes? (the webpack plugin reports circular dependencies within the `dev` npm script) * [ ] Have you made sure that all the necessary pipelines has been successfully completed? * [ ] If the task requires translations to be updated, have you done this by running the `manage:translations` script? From 7f7400fc3a5b78f82da411542143a2e5b6ffbb04 Mon Sep 17 00:00:00 2001 From: iso9000t <119494473+iso9000t@users.noreply.github.com> Date: Mon, 28 Oct 2024 18:05:27 +0400 Subject: [PATCH 4/7] EPMRPP-96385 || Error message shown twice for inactive GitHub logins (#4070) --- app/src/pages/outside/loginPage/loginPage.jsx | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/app/src/pages/outside/loginPage/loginPage.jsx b/app/src/pages/outside/loginPage/loginPage.jsx index af5891e5bb..805f1e5aad 100644 --- a/app/src/pages/outside/loginPage/loginPage.jsx +++ b/app/src/pages/outside/loginPage/loginPage.jsx @@ -80,20 +80,38 @@ export class LoginPage extends PureComponent { extensions: [], showDefaultErrorNotification: () => {}, }; + /* + * EPMRPP-96385: Quick fix for duplicate login error notifications + * Includes: static shownErrors, showErrorIfNeeded, componentDidMount, componentDidUpdate + * + * Quick fix to prevent duplicate error messages that sometimes occur when inactive GitHub users + * try to log in. Root cause: Login page component occasionally mounts twice causing duplicate + * error notifications. Using a static Set to deduplicate error messages as a temporary solution. + * + * TODO: Investigate inconsistent double mounting of login page + */ + static shownErrors = new Set(); - componentDidMount() { - if (this.props.errorAuth) { + showErrorIfNeeded = (error) => { + if (error && !LoginPage.shownErrors.has(error)) { + LoginPage.shownErrors.add(error); this.props.showDefaultErrorNotification({ - message: this.props.errorAuth, + message: error, }); + + setTimeout(() => { + LoginPage.shownErrors.delete(error); + }, 5000); } + }; + + componentDidMount() { + this.showErrorIfNeeded(this.props.errorAuth); } componentDidUpdate(prevProps) { if (this.props.errorAuth !== prevProps.errorAuth) { - this.props.showDefaultErrorNotification({ - message: this.props.errorAuth, - }); + this.showErrorIfNeeded(this.props.errorAuth); } } From 30f52735aa5890f6497c239b3315c071e773a530 Mon Sep 17 00:00:00 2001 From: maria-hambardzumian <164881199+maria-hambardzumian@users.noreply.github.com> Date: Tue, 29 Oct 2024 12:13:23 +0400 Subject: [PATCH 5/7] EPMRPP-96328 || Impossible to save Notification rule when user has a dot in username (#4074) --- app/src/common/utils/validation/validate.js | 2 +- .../recipientsContainer/recipientsContainer.jsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/common/utils/validation/validate.js b/app/src/common/utils/validation/validate.js index 02d8086714..0fd5d4ea90 100644 --- a/app/src/common/utils/validation/validate.js +++ b/app/src/common/utils/validation/validate.js @@ -117,7 +117,7 @@ export const createNotificationRecipientsValidator = (informOwner) => (value = [ if (informOwner && !value.length) { return true; } - const checkIsStringWithEmailParts = regex(/[.@]/); + const checkIsStringWithEmailParts = regex(/@/); if (value.some(checkIsStringWithEmailParts)) { return value.filter(checkIsStringWithEmailParts).every(email); } diff --git a/app/src/pages/inside/projectSettingsPageContainer/content/notifications/modals/addEditNotificationModal/recipientsContainer/recipientsContainer.jsx b/app/src/pages/inside/projectSettingsPageContainer/content/notifications/modals/addEditNotificationModal/recipientsContainer/recipientsContainer.jsx index 804afb3339..ffd61be942 100644 --- a/app/src/pages/inside/projectSettingsPageContainer/content/notifications/modals/addEditNotificationModal/recipientsContainer/recipientsContainer.jsx +++ b/app/src/pages/inside/projectSettingsPageContainer/content/notifications/modals/addEditNotificationModal/recipientsContainer/recipientsContainer.jsx @@ -42,7 +42,7 @@ const RecipientsContainerComponent = ({ projectInfo, error, ...rest }) => { const [recipientsWithError, setRecipientsWithError] = useState([]); const emailValidation = (email) => { - return regex(/[.@]/)(email); + return regex(/@/)(email); }; const getEmailValidationError = (v) => { From 767f70ce981d10f34957cc2ce35668206f029dad Mon Sep 17 00:00:00 2001 From: iso9000t <119494473+iso9000t@users.noreply.github.com> Date: Fri, 1 Nov 2024 11:25:44 +0400 Subject: [PATCH 6/7] EPMRPP-96393 || Incorrect sorting in widgets and Firefox bug (#4077) --- .../investigatedTrendChart/config/launchModeConfig.js | 10 ++++++++-- .../charts/launchStatisticsChart/config/utils.js | 6 +++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/components/widgets/singleLevelWidgets/charts/investigatedTrendChart/config/launchModeConfig.js b/app/src/components/widgets/singleLevelWidgets/charts/investigatedTrendChart/config/launchModeConfig.js index 126d975501..054240087d 100644 --- a/app/src/components/widgets/singleLevelWidgets/charts/investigatedTrendChart/config/launchModeConfig.js +++ b/app/src/components/widgets/singleLevelWidgets/charts/investigatedTrendChart/config/launchModeConfig.js @@ -33,8 +33,14 @@ export const getLaunchModeConfig = ({ }) => { const colors = {}; const columns = []; - - const sortedResult = content.sort((item) => -item.number); + // EPMRPP-96393 (GitHub #2381): Changed sorting from -item.number to startTime-based sorting + // for consistency across all chart widgets. This ensures chronological ordering + // based on actual launch times rather than launch names/numbers. + const sortedResult = content.sort((a, b) => { + const startTimeA = new Date(a.startTime); + const startTimeB = new Date(b.startTime); + return startTimeA - startTimeB; + }); const itemsData = sortedResult.map((item) => ({ id: item.id, name: item.name, diff --git a/app/src/components/widgets/singleLevelWidgets/charts/launchStatisticsChart/config/utils.js b/app/src/components/widgets/singleLevelWidgets/charts/launchStatisticsChart/config/utils.js index 3ad998c5cd..0914ac570d 100644 --- a/app/src/components/widgets/singleLevelWidgets/charts/launchStatisticsChart/config/utils.js +++ b/app/src/components/widgets/singleLevelWidgets/charts/launchStatisticsChart/config/utils.js @@ -39,7 +39,11 @@ export const getConfigData = ( }); widgetData - .sort((a, b) => a.startTime - b.startTime) + .sort((a, b) => { + const startTimeA = new Date(a.startTime); + const startTimeB = new Date(b.startTime); + return startTimeA - startTimeB; + }) .forEach((item) => { const currentItemData = { ...item, From 4dbfaf7e65313ada238f57530e21710b23d6bf68 Mon Sep 17 00:00:00 2001 From: maria-hambardzumian <164881199+maria-hambardzumian@users.noreply.github.com> Date: Fri, 1 Nov 2024 18:10:06 +0400 Subject: [PATCH 7/7] EPMRPP-96118 || Revert changes for the Show button (#4078) --- app/src/controllers/log/sagas.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/controllers/log/sagas.js b/app/src/controllers/log/sagas.js index fa197e7bbe..efa0ab6656 100644 --- a/app/src/controllers/log/sagas.js +++ b/app/src/controllers/log/sagas.js @@ -44,7 +44,7 @@ import { } from 'controllers/log/nestedSteps/actionCreators'; import { createNamespacedQuery } from 'common/utils/routingUtils'; import { FAILED } from 'common/constants/testStatuses'; -import { ERROR, FATAL } from 'common/constants/logLevels'; +import { ERROR } from 'common/constants/logLevels'; import { fetchErrorLogs, clearLogPageStackTrace, @@ -130,9 +130,6 @@ function* fetchAllErrorLogs({ excludeLogContent = true, level, }) { - const logMessages = yield select(logItemsSelector); - const requiresErrorLogLocation = logMessages.some((log) => [ERROR, FATAL].includes(log.level)); - const { id } = logItem; const { activeProject, query, filterLevel } = yield call(collectLogPayload); let retryId = null; @@ -142,7 +139,7 @@ function* fetchAllErrorLogs({ } let cancelRequest = () => {}; try { - if (logViewMode === DETAILED_LOG_VIEW && requiresErrorLogLocation) { + if (logViewMode === DETAILED_LOG_VIEW) { yield put( fetchDataAction(namespace)( URLS.errorLogs(activeProject, retryId || id, level || filterLevel),