aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js')
-rw-r--r--server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js75
1 files changed, 55 insertions, 20 deletions
diff --git a/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js b/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js
index 113568e1212..f2f88dc0f09 100644
--- a/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js
+++ b/server/sonar-web/src/main/js/apps/overview/components/LeakPeriodLegend.js
@@ -17,30 +17,65 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+// @flow
import React from 'react';
import moment from 'moment';
import { getPeriodDate, getPeriodLabel } from '../../../helpers/periods';
import { translateWithParameters } from '../../../helpers/l10n';
-const LeakPeriodLegend = ({ period }) => {
- const leakPeriodLabel = getPeriodLabel(period);
- const leakPeriodDate = getPeriodDate(period);
-
- const momentDate = moment(leakPeriodDate);
- const fromNow = momentDate.fromNow();
- const tooltip = 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">
- {translateWithParameters('overview.started_x', fromNow)}
- </span>
- </div>
- );
+type DaysPeriod = {
+ date: string,
+ mode: 'days',
+ parameter: string
};
-export default LeakPeriodLegend;
+type DatePeriod = {
+ date: string,
+ mode: 'date',
+ parameter: string
+};
+
+type VersionPeriod = {
+ date: string,
+ mode: 'version',
+ parameter: string
+};
+
+type PreviousAnalysisPeriod = {
+ date: string,
+ mode: 'previous_analysis'
+};
+
+type PreviousVersionPeriod = {
+ date: string,
+ mode: 'previous_version'
+};
+
+type Period = DaysPeriod | DatePeriod | VersionPeriod | PreviousAnalysisPeriod | PreviousVersionPeriod;
+
+export default class LeakPeriodLegend extends React.Component {
+ props: { period: Period };
+
+ render () {
+ const { period } = this.props;
+ const leakPeriodLabel = getPeriodLabel(period);
+ const leakPeriodDate = getPeriodDate(period);
+
+ const momentDate = moment(leakPeriodDate);
+ const fromNow = momentDate.fromNow();
+ const note = ['date', 'days'].includes(period.mode) ?
+ translateWithParameters('overview.last_analysis_x', fromNow) :
+ translateWithParameters('overview.started_x', fromNow);
+ const tooltip = ['date', 'days'].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>
+ );
+ }
+}