From 6eac2ab8175deb961aad976de301d80c3fa1ae77 Mon Sep 17 00:00:00 2001 From: Pascal Mugnier Date: Wed, 8 Aug 2018 15:48:24 +0200 Subject: [PATCH] SONAR-10209 handle deleted Quality Profile on project page --- server/sonar-web/src/main/js/app/types.ts | 9 +++++- .../overview/meta/MetaQualityProfiles.tsx | 30 ++++++++++++++----- .../src/main/js/apps/overview/styles.css | 1 + .../resources/org/sonar/l10n/core.properties | 1 + 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/server/sonar-web/src/main/js/app/types.ts b/server/sonar-web/src/main/js/app/types.ts index 4b55b604c22..f081619542f 100644 --- a/server/sonar-web/src/main/js/app/types.ts +++ b/server/sonar-web/src/main/js/app/types.ts @@ -72,7 +72,7 @@ export interface Component extends LightComponent { name: string; path?: string; refKey?: string; - qualityProfiles?: { key: string; language: string; name: string }[]; + qualityProfiles?: ComponentQualityProfile[]; qualityGate?: { isDefault?: boolean; key: string; name: string }; tags?: string[]; version?: string; @@ -92,6 +92,13 @@ interface ComponentConfiguration { showUpdateKey?: boolean; } +export interface ComponentQualityProfile { + deleted?: boolean; + key: string; + language: string; + name: string; +} + export interface Condition { error: string; id: number; diff --git a/server/sonar-web/src/main/js/apps/overview/meta/MetaQualityProfiles.tsx b/server/sonar-web/src/main/js/apps/overview/meta/MetaQualityProfiles.tsx index d55ad3cc822..a4628b8fa6e 100644 --- a/server/sonar-web/src/main/js/apps/overview/meta/MetaQualityProfiles.tsx +++ b/server/sonar-web/src/main/js/apps/overview/meta/MetaQualityProfiles.tsx @@ -26,6 +26,7 @@ import { translate, translateWithParameters } from '../../../helpers/l10n'; import { getQualityProfileUrl } from '../../../helpers/urls'; import { searchRules } from '../../../api/rules'; import { getLanguages } from '../../../store/rootReducer'; +import { ComponentQualityProfile } from '../../../app/types'; interface StateProps { languages: { [key: string]: { name: string } }; @@ -34,7 +35,7 @@ interface StateProps { interface OwnProps { headerClassName?: string; organization?: string; - profiles: { key: string; language: string; name: string }[]; + profiles: ComponentQualityProfile[]; } interface State { @@ -55,9 +56,9 @@ class MetaQualityProfiles extends React.PureComponent - this.loadDeprecatedRulesForProfile(profile.key) - ); + const requests = this.props.profiles + .filter(p => !p.deleted) + .map(profile => this.loadDeprecatedRulesForProfile(profile.key)); Promise.all(requests).then( responses => { if (this.mounted) { @@ -89,19 +90,32 @@ class MetaQualityProfiles extends React.PureComponent {'(' + languageName + ')'} - {profile.name} + {profile.deleted ? ( + profile.name + ) : ( + + {profile.name} + + )} ); + if (profile.deleted) { + const tooltip = translateWithParameters('overview.deleted_profile', profile.name); + return ( + +
  • {inner}
  • +
    + ); + } + const count = this.getDeprecatedRulesCount(profile); if (count > 0) { diff --git a/server/sonar-web/src/main/js/apps/overview/styles.css b/server/sonar-web/src/main/js/apps/overview/styles.css index 92ed309cda0..4abad4a7f59 100644 --- a/server/sonar-web/src/main/js/apps/overview/styles.css +++ b/server/sonar-web/src/main/js/apps/overview/styles.css @@ -470,6 +470,7 @@ background-color: transparent !important; } +.overview-deleted-profile, .overview-deprecated-rules { margin: 4px -6px 4px; padding: 3px 6px !important; diff --git a/sonar-core/src/main/resources/org/sonar/l10n/core.properties b/sonar-core/src/main/resources/org/sonar/l10n/core.properties index 13d8d40376f..e9dd6677ef6 100644 --- a/sonar-core/src/main/resources/org/sonar/l10n/core.properties +++ b/sonar-core/src/main/resources/org/sonar/l10n/core.properties @@ -2423,6 +2423,7 @@ overview.complexity_tooltip.function={0} functions have complexity around {1} overview.complexity_tooltip.file={0} files have complexity around {1} overview.deprecated_profile=This quality profile uses {0} deprecated rules and should be updated. +overview.deleted_profile={0} has been deleted since the last analysis. overview.badges.get_badge.TRK=Get project badges -- 2.39.5