import { getPeriodValue, isDiffMetric, formatMeasure } from '../../../helpers/measures';
import { translate } from '../../../helpers/l10n';
import { getPeriod, getPeriodDate } from '../../../helpers/periods';
-import { TooltipsContainer } from '../../../components/mixins/tooltips-mixin';
const QualityGateCondition = ({ component, periods, condition }) => {
const { measure } = condition;
const periodDate = getPeriodDate(period);
const operator = isRating ?
translate('quality_gates.operator', condition.op, 'rating') :
- translate('quality_gates.operator', condition.op, 'short');
+ translate('quality_gates.operator', condition.op);
const className = classNames(
'overview-quality-gate-condition',
);
return (
- <TooltipsContainer>
- <li className={className}>
- <div className="overview-quality-gate-condition-container"
- title={`${operator} ${formatMeasure(threshold, metric.type)}`}
- data-toggle="tooltip">
- <div className="overview-quality-gate-condition-value">
- <DrilldownLink
- className={isRating ? 'link-no-underline' : null}
- component={component.key}
- metric={metric.key}
- period={condition.period}
- periodDate={periodDate}>
- <Measure measure={{ value: actual, leak: actual }} metric={metric}/>
- </DrilldownLink>
- </div>
+ <li className={className}>
+ <div className="overview-quality-gate-condition-container">
+ <div className="overview-quality-gate-condition-value">
+ <DrilldownLink
+ className={isRating ? 'link-no-underline' : null}
+ component={component.key}
+ metric={metric.key}
+ period={condition.period}
+ periodDate={periodDate}>
+ <Measure measure={{ value: actual, leak: actual }} metric={metric}/>
+ </DrilldownLink>
+ </div>
- <div>
- <div className="overview-quality-gate-condition-metric">
- {metric.name}
- </div>
- {!isDiff && period != null && (
- <div className="overview-quality-gate-condition-period">
- {translate('quality_gates.conditions.leak')}
- </div>
- )}
+ <div>
+ <div className="overview-quality-gate-condition-metric">
+ {metric.name}
+ </div>
+ {!isDiff && period != null && (
+ <div className="overview-quality-gate-condition-period">
+ {translate('quality_gates.conditions.leak')}
+ </div>
+ )}
+ <div className="overview-quality-gate-threshold">
+ {operator} {formatMeasure(threshold, metric.type)}
</div>
</div>
- </li>
- </TooltipsContainer>
+ </div>
+ </li>
);
};
}
.overview-quality-gate-condition-container {
- float: left;
display: flex;
align-items: center;
- padding: 10px 10px 10px 20px;
+ min-width: 150px;
+ /* three lines by 16px and 4px margin */
+ min-height: 52px;
+ padding: 10px;
}
.overview-quality-gate-condition-value {
line-height: 1;
- margin-right: 20px;
+ margin-right: 10px;
font-size: 24px;
font-weight: normal;
+
+ /* for consistency with ratings */
+ min-width: 24px;
+ text-align: center;
}
.overview-quality-gate-condition-value span {
vertical-align: top;
}
+.overview-quality-gate-threshold {
+ margin-top: 4px;
+ font-size: 12px;
+}
+
.overview-quality-gate-warning {
margin: 15px 0 0;
}
border-color: #f90;
}
+.overview-quality-gate-condition-error .overview-quality-gate-threshold {
+ color: #d4333f;
+}
+
+.overview-quality-gate-condition-warn .overview-quality-gate-threshold {
+ color: #f90;
+}
+
/*
* Domain