Browse Source

SONAR-11651 Display tooltip next to warning quality gate status

tags/7.6
Grégoire Aubert 5 years ago
parent
commit
2e0e588aba

+ 8
- 1
server/sonar-web/src/main/js/apps/account/projects/ProjectCard.tsx View File

@@ -20,10 +20,11 @@
import * as React from 'react';
import { sortBy } from 'lodash';
import { Link } from 'react-router';
import ProjectLinkIcon from '../../../components/icons-components/ProjectLinkIcon';
import DateFromNow from '../../../components/intl/DateFromNow';
import DateTimeFormatter from '../../../components/intl/DateTimeFormatter';
import HelpTooltip from '../../../components/controls/HelpTooltip';
import Level from '../../../components/ui/Level';
import ProjectLinkIcon from '../../../components/icons-components/ProjectLinkIcon';
import Tooltip from '../../../components/controls/Tooltip';
import { translateWithParameters, translate } from '../../../helpers/l10n';

@@ -56,6 +57,12 @@ export default function ProjectCard({ project }: Props) {

{project.qualityGate !== undefined && (
<div className="account-project-quality-gate">
{project.qualityGate === 'WARN' && (
<HelpTooltip
className="little-spacer-right"
overlay={translate('quality_gates.conditions.warning.tootlip')}
/>
)}
<Level level={project.qualityGate} />
</div>
)}

+ 8
- 1
server/sonar-web/src/main/js/apps/overview/qualityGate/ApplicationQualityGate.tsx View File

@@ -21,9 +21,10 @@ import * as React from 'react';
import { keyBy } from 'lodash';
import ApplicationQualityGateProject from './ApplicationQualityGateProject';
import Level from '../../../components/ui/Level';
import DocTooltip from '../../../components/docs/DocTooltip';
import HelpTooltip from '../../../components/controls/HelpTooltip';
import { getApplicationQualityGate, ApplicationProject } from '../../../api/quality-gates';
import { translate } from '../../../helpers/l10n';
import DocTooltip from '../../../components/docs/DocTooltip';

interface Props {
branch?: T.LongLivingBranch;
@@ -95,6 +96,12 @@ export default class ApplicationQualityGate extends React.PureComponent<Props, S
doc={import(/* webpackMode: "eager" */ 'Docs/tooltips/quality-gates/project-homepage-quality-gate.md')}
/>
{status != null && <Level className="big-spacer-left" level={status} />}
{status === 'WARN' && (
<HelpTooltip
className="little-spacer-left"
overlay={translate('quality_gates.conditions.warning.tootlip')}
/>
)}
</h2>

{projects &&

+ 6
- 0
server/sonar-web/src/main/js/apps/overview/qualityGate/QualityGate.tsx View File

@@ -59,6 +59,12 @@ export default function QualityGate({ branchLike, component, measures }: Props)
doc={import(/* webpackMode: "eager" */ 'Docs/tooltips/quality-gates/project-homepage-quality-gate.md')}
/>
{level && <Level className="big-spacer-left" level={level} />}
{level === 'WARN' && (
<HelpTooltip
className="little-spacer-left"
overlay={translate('quality_gates.conditions.warning.tootlip')}
/>
)}
</div>

{ignoredConditions && (

+ 8
- 1
server/sonar-web/src/main/js/apps/projects/components/ProjectCardQualityGate.tsx View File

@@ -19,9 +19,10 @@
*/
import * as React from 'react';
import Level from '../../../components/ui/Level';
import HelpTooltip from '../../../components/controls/HelpTooltip';
import Tooltip from '../../../components/controls/Tooltip';
import { formatMeasure } from '../../../helpers/measures';
import { translateWithParameters } from '../../../helpers/l10n';
import { translateWithParameters, translate } from '../../../helpers/l10n';

interface Props {
status?: string;
@@ -42,6 +43,12 @@ export default function ProjectCardQualityGate({ status }: Props) {
<Tooltip overlay={tooltip}>
<div className="project-card-measure-inner">
<Level level={status} small={true} />
{status === 'WARN' && (
<HelpTooltip
className="little-spacer-left"
overlay={translate('quality_gates.conditions.warning.tootlip')}
/>
)}
</div>
</Tooltip>
</div>

+ 12
- 1
server/sonar-web/src/main/js/apps/projects/filters/QualityGateFilter.tsx View File

@@ -24,6 +24,7 @@ import { Facet } from '../types';
import Level from '../../../components/ui/Level';
import { translate } from '../../../helpers/l10n';
import { RawQuery } from '../../../helpers/query';
import HelpTooltip from '../../../components/controls/HelpTooltip';

export interface Props {
className?: string;
@@ -58,5 +59,15 @@ function getFacetValueForOption(facet: Facet, option: string) {
}

function renderOption(option: string, selected: boolean) {
return <Level level={option} muted={!selected} small={true} />;
return (
<>
<Level level={option} muted={!selected} small={true} />
{option === 'WARN' && (
<HelpTooltip
className="little-spacer-left"
overlay={translate('projects.facets.quality_gate.warning_help')}
/>
)}
</>
);
}

+ 7
- 5
server/sonar-web/src/main/js/apps/projects/filters/__tests__/__snapshots__/QualityGateFilter-test.tsx.snap View File

@@ -23,9 +23,11 @@ exports[`renders 1`] = `
`;

exports[`renders 2`] = `
<Level
level={2}
muted={true}
small={true}
/>
<React.Fragment>
<Level
level={2}
muted={true}
small={true}
/>
</React.Fragment>
`;

+ 1
- 0
server/sonar-web/src/main/js/components/ui/Level.tsx View File

@@ -35,5 +35,6 @@ export default function Level(props: Props) {
'level-small': props.small,
'level-muted': props.muted
});

return <span className={className}>{formatted}</span>;
}

+ 2
- 0
sonar-core/src/main/resources/org/sonar/l10n/core.properties View File

@@ -807,6 +807,7 @@ projects.visualization.duplications=Duplications
projects.visualization.duplications.description=See duplications' long-term risks to your projects. Bubble size indicates the volume of duplicated blocks in the project, and each bubble's vertical position reflects the volume of lines in those blocks. Small bubbles on the bottom edge are best.
projects.limited_set_of_projects=Displayed project set limited to the top {0} projects based on current sort: {1}.
projects.facets.quality_gate=Quality Gate
projects.facets.quality_gate.warning_help=Warning status is deprecated. This filter will disappear when no Warning Quality Gate remains.
projects.facets.languages=Languages
projects.facets.new_lines=New Lines
projects.facets.tags=Tags
@@ -1242,6 +1243,7 @@ quality_gates.conditions.metric=Metric
quality_gates.conditions.new_code=On New Code
quality_gates.conditions.operator=Operator
quality_gates.conditions.warning=Warning
quality_gates.conditions.warning.tootlip=Warning status is deprecated and will disappear with the next update of the Quality Gate.
quality_gates.conditions.error=Error
quality_gates.duplicated_conditions=This quality gate has duplicated conditions:
quality_gates.intro.1=Quality Gate is the set of conditions the project must meet before it can be released into production.

Loading…
Cancel
Save