]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9061 Fix leak period header for days period
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Mon, 1 May 2017 14:22:11 +0000 (16:22 +0200)
committerGrégoire Aubert <gregaubert@users.noreply.github.com>
Wed, 3 May 2017 08:02:47 +0000 (10:02 +0200)
server/sonar-web/src/main/js/apps/component-measures/components/LeakPeriodLegend.js
server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js
server/sonar-web/src/main/js/apps/overview/components/__tests__/LeakPeriodLegend-test.js
server/sonar-web/src/main/js/apps/overview/components/__tests__/__snapshots__/LeakPeriodLegend-test.js.snap
server/sonar-web/src/main/js/apps/overview/styles.css

index c437c474e93ab26a01e288f95d850bd55d0a3294..de46b957a1ddc019038da2772f8d29582c3eebf1 100644 (file)
  */
 import React from 'react';
 import moment from 'moment';
-import { TooltipsContainer } from '../../../components/mixins/tooltips-mixin';
+import Tooltip from '../../../components/controls/Tooltip';
 import { getPeriodLabel, getPeriodDate } from '../../../helpers/periods';
 import { translateWithParameters } from '../../../helpers/l10n';
 
-const LeakPeriodLegend = ({ period }) => {
+export default function LeakPeriodLegend({ period }) {
+  const label = (
+    <div className="measures-domains-leak-header">
+      {translateWithParameters('overview.leak_period_x', getPeriodLabel(period))}
+    </div>
+  );
+
+  if (period.mode === 'days') {
+    return label;
+  }
+
   const date = getPeriodDate(period);
-  const label = getPeriodLabel(period);
   const fromNow = moment(date).fromNow();
   const tooltip = fromNow + ', ' + moment(date).format('LL');
-
-  return (
-    <TooltipsContainer>
-      <div className="measures-domains-leak-header">
-        <div title={tooltip} data-toggle="tooltip">
-          {translateWithParameters('overview.leak_period_x', label)}
-        </div>
-      </div>
-    </TooltipsContainer>
-  );
-};
-
-export default LeakPeriodLegend;
+  return <Tooltip placement="bottom" overlay={tooltip}>{label}</Tooltip>;
+}
index 5f71c846631405cbd4535c573b0b21be0ddffa5f..4f3f98a9e5ddc9cce8acccf7ff73988f7b6b9d68 100644 (file)
@@ -20,6 +20,7 @@
 // @flow
 import React from 'react';
 import moment from 'moment';
+import Tooltip from '../../../components/controls/Tooltip';
 import { getPeriodDate, getPeriodLabel } from '../../../helpers/periods';
 import { translateWithParameters } from '../../../helpers/l10n';
 
@@ -58,25 +59,34 @@ type Period =
   | PreviousAnalysisPeriod
   | PreviousVersionPeriod;
 
-export default function LeakPeriodLegend(props: { period: Period }) {
-  const { period } = props;
+export default function LeakPeriodLegend({ period }: { period: Period }) {
   const leakPeriodLabel = getPeriodLabel(period);
-  const leakPeriodDate = getPeriodDate(period);
 
+  if (period.mode === 'days') {
+    return (
+      <div className="overview-legend overview-legend-spaced-line">
+        {translateWithParameters('overview.leak_period_x', leakPeriodLabel)}
+      </div>
+    );
+  }
+
+  const leakPeriodDate = getPeriodDate(period);
   const momentDate = moment(leakPeriodDate);
   const fromNow = momentDate.fromNow();
-  const note = ['date', 'days'].includes(period.mode)
+  const note = ['date'].includes(period.mode)
     ? translateWithParameters('overview.last_analysis_x', fromNow)
     : translateWithParameters('overview.started_x', fromNow);
-  const tooltip = ['date', 'days'].includes(period.mode)
+  const tooltip = ['date'].includes(period.mode)
     ? translateWithParameters('overview.last_analysis_on_x', momentDate.format('LL'))
     : translateWithParameters('overview.started_on_x', momentDate.format('LL'));
 
   return (
-    <div className="overview-legend" title={tooltip} data-toggle="tooltip">
-      {translateWithParameters('overview.leak_period_x', leakPeriodLabel)}
-      <br />
-      <span className="note">{note}</span>
-    </div>
+    <Tooltip overlay={tooltip} placement="bottom">
+      <div className="overview-legend">
+        {translateWithParameters('overview.leak_period_x', leakPeriodLabel)}
+        <br />
+        <span className="note">{note}</span>
+      </div>
+    </Tooltip>
   );
 }
index 9d5a585c7831e88592909e7769758ea8a0c53d69..251e20594bc72d4c03429b07543a27214ae134e2 100644 (file)
@@ -28,7 +28,7 @@ describe('check note', () => {
       mode: 'days',
       parameter: '10'
     };
-    expect(shallow(<LeakPeriodLegend period={period} />).find('.note')).toMatchSnapshot();
+    expect(shallow(<LeakPeriodLegend period={period} />)).toMatchSnapshot();
   });
 
   it('date', () => {
index 3a4dbbd9111e2f29b490c1313ba1ea70d78baa6d..397016097b3ae5bc7ae2d7df9fc92cbd393bd76a 100644 (file)
@@ -1,11 +1,11 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
 exports[`check note 10 days 1`] = `
-<span
-  className="note"
+<div
+  className="overview-legend overview-legend-spaced-line"
 >
-  overview.last_analysis_x.4 years ago
-</span>
+  overview.leak_period_x.overview.period.days.10
+</div>
 `;
 
 exports[`check note date 1`] = `
index 2db27b12117eac0a812b10bc15800d153513b391..39ca160558520804ba4c6ca4045771aad3d735ad 100644 (file)
   transform: translateY(-4px);
 }
 
+.overview-legend-spaced-line {
+  padding: 14px 0 10px;
+}
+
 .overview-key {
   width: 100%;
   background-color: transparent !important;