diff options
author | Stas Vilchik <stas.vilchik@sonarsource.com> | 2018-08-16 14:35:47 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-08-21 20:21:03 +0200 |
commit | f91cf3ea0050655c715dc20465118a0568d4ec83 (patch) | |
tree | f95216310aa1f6ed4210ad832cdeba11086fe6af /server/sonar-web/src/main/js/apps | |
parent | cd96a36db6438e47721332f7bef8b3e3a8a7f94c (diff) | |
download | sonarqube-f91cf3ea0050655c715dc20465118a0568d4ec83.tar.gz sonarqube-f91cf3ea0050655c715dc20465118a0568d4ec83.zip |
SONAR-10938 do not display undefined language in rule facet (#618)
Diffstat (limited to 'server/sonar-web/src/main/js/apps')
4 files changed, 16 insertions, 10 deletions
diff --git a/server/sonar-web/src/main/js/apps/coding-rules/components/SimilarRulesFilter.tsx b/server/sonar-web/src/main/js/apps/coding-rules/components/SimilarRulesFilter.tsx index 6d98a0959d4..0ec38b7e1ff 100644 --- a/server/sonar-web/src/main/js/apps/coding-rules/components/SimilarRulesFilter.tsx +++ b/server/sonar-web/src/main/js/apps/coding-rules/components/SimilarRulesFilter.tsx @@ -36,7 +36,9 @@ export default class SimilarRulesFilter extends React.PureComponent<Props> { handleLanguageClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { event.preventDefault(); event.currentTarget.blur(); - this.props.onFilterChange({ languages: [this.props.rule.lang] }); + if (this.props.rule.lang) { + this.props.onFilterChange({ languages: [this.props.rule.lang] }); + } }; handleTypeClick = (event: React.SyntheticEvent<HTMLAnchorElement>) => { diff --git a/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.tsx b/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.tsx index 64ef05a7d1c..c8cd81a4633 100644 --- a/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.tsx +++ b/server/sonar-web/src/main/js/apps/issues/sidebar/RuleFacet.tsx @@ -62,15 +62,19 @@ export default class RuleFacet extends React.PureComponent<Props> { return this.props.loadSearchResultCount({ rules: [rule.key] }); }; - getRuleName = (rule: string) => { - const { referencedRules } = this.props; - return referencedRules[rule] - ? `(${referencedRules[rule].langName}) ${referencedRules[rule].name}` - : rule; + getRuleName = (ruleKey: string) => { + const rule = this.props.referencedRules[ruleKey]; + return rule ? this.formatRuleName(rule.name, rule.langName) : ruleKey; + }; + + formatRuleName = (name: string, langName: string | undefined) => { + // external rules don't have a language associated + // see https://jira.sonarsource.com/browse/MMF-1407 + return langName ? `(${langName}) ${name}` : name; }; renderSearchResult = (rule: Rule) => { - return `(${rule.langName}) ${rule.name}`; + return this.formatRuleName(rule.name, rule.langName); }; render() { diff --git a/server/sonar-web/src/main/js/apps/issues/utils.ts b/server/sonar-web/src/main/js/apps/issues/utils.ts index e6449228325..f600d4b1efd 100644 --- a/server/sonar-web/src/main/js/apps/issues/utils.ts +++ b/server/sonar-web/src/main/js/apps/issues/utils.ts @@ -202,7 +202,7 @@ export interface ReferencedLanguage { } export interface ReferencedRule { - langName: string; + langName?: string; name: string; } diff --git a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx index 2842268340f..f0e4363e8dc 100644 --- a/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx +++ b/server/sonar-web/src/main/js/apps/quality-profiles/home/EvolutionRules.tsx @@ -122,12 +122,12 @@ export default class EvolutionRules extends React.PureComponent<Props, State> { {rule.activations ? translateWithParameters( 'quality_profiles.latest_new_rules.activated', - rule.langName, + rule.langName!, rule.activations ) : translateWithParameters( 'quality_profiles.latest_new_rules.not_activated', - rule.langName + rule.langName! )} </div> </div> |