aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2016-03-07 17:31:21 +0100
committerStas Vilchik <vilchiks@gmail.com>2016-03-07 17:31:21 +0100
commit94d4858fcc910344715a47cda6fe0fe402d65491 (patch)
tree15030bc757b2496b9e7d1aecd47db976e9aed510 /server/sonar-web/src/main
parenta38c73d58564cd929614f372ee88b414e12b50de (diff)
downloadsonarqube-94d4858fcc910344715a47cda6fe0fe402d65491.tar.gz
sonarqube-94d4858fcc910344715a47cda6fe0fe402d65491.zip
SONAR-7402 fix corner cases caused by views and developers
Diffstat (limited to 'server/sonar-web/src/main')
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/AllMeasures.js9
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/AllMeasuresDomain.js16
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldown.js20
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldownTree.js4
-rw-r--r--server/sonar-web/src/main/js/apps/component-measures/styles.css1
5 files changed, 33 insertions, 17 deletions
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasures.js b/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasures.js
index 26c6ca254d2..69d1709ef86 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasures.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasures.js
@@ -24,7 +24,7 @@ import Spinner from './Spinner';
import AllMeasuresDomain from './AllMeasuresDomain';
import { getLeakValue } from '../utils';
import { getMeasuresAndMeta } from '../../../api/measures';
-import { getLeakPeriodLabel } from '../../../helpers/periods';
+import { getLeakPeriod, getLeakPeriodLabel } from '../../../helpers/periods';
export default class AllMeasures extends React.Component {
state = {
@@ -51,13 +51,18 @@ export default class AllMeasures extends React.Component {
getMeasuresAndMeta(component.key, metricKeys, { additionalFields: 'periods' }).then(r => {
if (this.mounted) {
+ const leakPeriod = getLeakPeriod(r.periods);
const measures = r.component.measures
.map(measure => {
const metric = metrics.find(metric => metric.key === measure.metric);
const leak = getLeakValue(measure);
return { ...measure, metric, leak };
})
- .filter(measure => measure.value != null || measure.leak != null);
+ .filter(measure => {
+ const hasValue = measure.value != null;
+ const hasLeakValue = !!leakPeriod && measure.leak != null;
+ return hasValue || hasLeakValue;
+ });
this.setState({
measures,
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasuresDomain.js b/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasuresDomain.js
index 25d2861d25e..4b3f7222ec1 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasuresDomain.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/AllMeasuresDomain.js
@@ -25,11 +25,13 @@ import { formatMeasure } from '../../../helpers/measures';
import { translateWithParameters } from '../../../helpers/l10n';
export default function AllMeasuresDomain ({ domain, component, displayLeakHeader, leakPeriodLabel }) {
+ const hasLeak = !!leakPeriodLabel;
+
return (
<li>
<header className="page-header">
<h3 className="page-title">{domain.name}</h3>
- {displayLeakHeader && (
+ {displayLeakHeader && hasLeak && (
<div className="measures-domains-leak-header">
{translateWithParameters('overview.leak_period_x', leakPeriodLabel)}
</div>
@@ -50,13 +52,15 @@ export default function AllMeasuresDomain ({ domain, component, displayLeakHeade
</span>
)}
</div>
- <div className="domain-measures-value domain-measures-leak">
- {measure.leak != null && (
- <span>
+ {hasLeak && (
+ <div className="domain-measures-value domain-measures-leak">
+ {measure.leak != null && (
+ <span>
{formatLeak(measure.leak, measure.metric)}
</span>
- )}
- </div>
+ )}
+ </div>
+ )}
</Link>
</li>
))}
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldown.js b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldown.js
index 0c250d07110..c8205cb0a50 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldown.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldown.js
@@ -34,6 +34,8 @@ export default class MeasureDrilldown extends React.Component {
const { children, metric, ...other } = this.props;
const { component } = this.context;
+ const showListView = ['VW', 'SVW', 'DEV'].indexOf(component.qualifier) === -1;
+
const child = React.cloneElement(children, { component, metric, ...other });
return (
@@ -48,14 +50,16 @@ export default class MeasureDrilldown extends React.Component {
</Link>
</li>
- <li>
- <Link
- activeClassName="active"
- to={{ pathname: `${metric.key}/list`, query: { id: component.key } }}>
- <IconList/>
- {translate('component_measures.tab.list')}
- </Link>
- </li>
+ {showListView && (
+ <li>
+ <Link
+ activeClassName="active"
+ to={{ pathname: `${metric.key}/list`, query: { id: component.key } }}>
+ <IconList/>
+ {translate('component_measures.tab.list')}
+ </Link>
+ </li>
+ )}
{hasBubbleChart(metric.key) && (
<li>
diff --git a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldownTree.js b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldownTree.js
index 47ae38b67cb..5e2a2a65d64 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldownTree.js
+++ b/server/sonar-web/src/main/js/apps/component-measures/components/MeasureDrilldownTree.js
@@ -60,9 +60,11 @@ export default class MeasureDrilldownTree extends React.Component {
asc
};
+ const componentKey = baseComponent.refKey || baseComponent.key;
+
this.setState({ fetching: true });
- getChildren(baseComponent.key, [metric.key], options).then(children => {
+ getChildren(componentKey, [metric.key], options).then(children => {
if (this.mounted) {
const components = enhanceWithSingleMeasure(children);
diff --git a/server/sonar-web/src/main/js/apps/component-measures/styles.css b/server/sonar-web/src/main/js/apps/component-measures/styles.css
index d5d4d22c2c3..b9cbca5ccec 100644
--- a/server/sonar-web/src/main/js/apps/component-measures/styles.css
+++ b/server/sonar-web/src/main/js/apps/component-measures/styles.css
@@ -20,6 +20,7 @@
.domain-measures > li > a {
display: flex;
+ justify-content: space-between;
border: none;
}