aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/code/utils.ts
diff options
context:
space:
mode:
authorMathieu Suen <mathieu.suen@sonarsource.com>2021-12-21 09:46:41 +0100
committersonartech <sonartech@sonarsource.com>2021-12-24 20:02:59 +0000
commit2da4d0ec8c8f96a8309dce79eaf368ce187c0027 (patch)
tree9335cbd0dc0af31939cfeaecdc662df4936cc93f /server/sonar-web/src/main/js/apps/code/utils.ts
parenteb02c848b5abb29ef43ed4438205af46243faf3d (diff)
downloadsonarqube-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.ts31
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,