diff options
author | Mathieu Suen <mathieu.suen@sonarsource.com> | 2021-12-21 09:46:41 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2021-12-24 20:02:59 +0000 |
commit | 2da4d0ec8c8f96a8309dce79eaf368ce187c0027 (patch) | |
tree | 9335cbd0dc0af31939cfeaecdc662df4936cc93f /server/sonar-web/src/main/js/apps/code/utils.ts | |
parent | eb02c848b5abb29ef43ed4438205af46243faf3d (diff) | |
download | sonarqube-2da4d0ec8c8f96a8309dce79eaf368ce187c0027.tar.gz sonarqube-2da4d0ec8c8f96a8309dce79eaf368ce187c0027.zip |
SONAR-15790 Add new/overall code filter on portfolio's projects page
Diffstat (limited to 'server/sonar-web/src/main/js/apps/code/utils.ts')
-rw-r--r-- | server/sonar-web/src/main/js/apps/code/utils.ts | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/server/sonar-web/src/main/js/apps/code/utils.ts b/server/sonar-web/src/main/js/apps/code/utils.ts index f9c2a59eda5..3f957269065 100644 --- a/server/sonar-web/src/main/js/apps/code/utils.ts +++ b/server/sonar-web/src/main/js/apps/code/utils.ts @@ -20,6 +20,7 @@ import { getBreadcrumbs, getChildren, getComponent } from '../../api/components'; import { getBranchLikeQuery, isPullRequest } from '../../helpers/branch-like'; import { BranchLike } from '../../types/branch-like'; +import { isPortfolioLike } from '../../types/component'; import { MetricKey } from '../../types/metrics'; import { addComponent, @@ -51,6 +52,15 @@ const PORTFOLIO_METRICS = [ MetricKey.ncloc ]; +const NEW_PORTFOLIO_METRICS = [ + MetricKey.releasability_rating, + MetricKey.new_reliability_rating, + MetricKey.new_security_rating, + MetricKey.new_security_review_rating, + MetricKey.new_maintainability_rating, + MetricKey.new_lines +]; + const LEAK_METRICS = [ MetricKey.new_lines, MetricKey.bugs, @@ -104,10 +114,17 @@ function storeChildrenBreadcrumbs(parentComponentKey: string, children: T.Breadc export function getCodeMetrics( qualifier: string, branchLike?: BranchLike, - options: { includeQGStatus?: boolean } = {} + options: { includeQGStatus?: boolean; newCode?: boolean } = {} ) { - if (['VW', 'SVW'].includes(qualifier)) { - const metrics = [...PORTFOLIO_METRICS]; + if (isPortfolioLike(qualifier)) { + let metrics: MetricKey[] = []; + if (options?.newCode === undefined) { + metrics = [...NEW_PORTFOLIO_METRICS, ...PORTFOLIO_METRICS]; + } else if (options?.newCode) { + metrics = [...NEW_PORTFOLIO_METRICS]; + } else { + metrics = [...PORTFOLIO_METRICS]; + } return options.includeQGStatus ? metrics.concat(MetricKey.alert_status) : metrics; } if (qualifier === 'APP') { @@ -159,7 +176,9 @@ export function retrieveComponentChildren( }); } - const metrics = getCodeMetrics(qualifier, branchLike, { includeQGStatus: true }); + const metrics = getCodeMetrics(qualifier, branchLike, { + includeQGStatus: true + }); return getChildren(componentKey, metrics, { ps: PAGE_SIZE, @@ -231,7 +250,9 @@ export function loadMoreChildren( instance: { mounted: boolean }, branchLike?: BranchLike ): Promise<Children> { - const metrics = getCodeMetrics(qualifier, branchLike, { includeQGStatus: true }); + const metrics = getCodeMetrics(qualifier, branchLike, { + includeQGStatus: true + }); return getChildren(componentKey, metrics, { ps: PAGE_SIZE, |