Skip to content

Commit ab8895c

Browse files
committed
#407 (New Frontend) Refactor Sprint and Burndown Visualization
- changed way of styling axis description - changed help section to fit naming - extracted type - added TODOs for after dialog rework - removed usage of getDataSlice from simplePlugin
1 parent 08c240a commit ab8895c

File tree

11 files changed

+27
-36
lines changed

11 files changed

+27
-36
lines changed

binocular-frontend-new/src/plugins/visualizationPlugins/authorBehaviour/timeSpent/src/utilities/dataConverter.ts

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,17 @@ import chroma from 'chroma-js';
33
import _ from 'lodash';
44
import type { TimeSpentSettings } from '../settings/settings.tsx';
55
import type { DataPluginNote } from '../../../../../interfaces/dataPluginInterfaces/dataPluginNotes.ts';
6-
import type { DataPluginMergeRequest } from '../../../../../interfaces/dataPluginInterfaces/dataPluginMergeRequests.ts';
7-
import type { DataPluginAccount } from '../../../../../interfaces/dataPluginInterfaces/dataPluginAccounts.ts';
8-
import type { DataPluginIssue } from '../../../../../interfaces/dataPluginInterfaces/dataPluginIssues.ts';
6+
import type { TimeTrackingData } from '../../../../types/timeTrackingDataType';
97
import distinctColors from 'distinct-colors';
108
import type { VisualizationPluginProperties } from '../../../../../interfaces/visualizationPluginInterfaces/visualizationPluginProperties.ts';
119
import type { AuthorType } from '../../../../../../types/data/authorType.ts';
12-
import { extractTimeTrackingDataFromNotes } from '../../../../../utils/extractTimeTrackingDataFromNotes.ts';
10+
import { extractTimeTrackingDataFromNotes } from '../../../../utils/extractTimeTrackingDataFromNotes.ts';
1311

1412
interface TimeSpentChartData {
1513
date: number;
1614
[signature: string]: number;
1715
}
1816

19-
export interface TimeTrackingData {
20-
author: DataPluginAccount;
21-
timeSpent: number;
22-
createdAt: string;
23-
issue: DataPluginIssue | null;
24-
mergeRequest: DataPluginMergeRequest | null;
25-
}
26-
2717
interface IssueAndMR {
2818
id: string;
2919
title: string;

binocular-frontend-new/src/plugins/visualizationPlugins/issues/burndown/src/chart/components/BurndownChartXAxisLegend.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const BurndownChartXAxisLegend: React.FC<{
1212
return (
1313
<g>
1414
<rect x={margin * 2} y={height - legendBarHeight} height={1} width={width - margin * 3} />
15-
<rect x={margin * 2} y={height + 1 - legendBarHeight} width={width - margin * 3} height={40} fill={'#EEE'} />
15+
<rect x={margin * 2} y={height + 1 - legendBarHeight} width={width - margin * 3} height={40} fill={'white'} />
1616
{xScale.ticks().map((t) => {
1717
const x = xScale(t);
1818

binocular-frontend-new/src/plugins/visualizationPlugins/issues/burndown/src/chart/components/BurndownChartYAxisLegend.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { margin } from '../BurndownChart';
55
export const BurndownChartYAxisLegend: React.FC<{ height: number; yScale: d3.ScaleLinear<number, number> }> = ({ height, yScale }) => (
66
<g>
77
<rect x={margin * 2} y={0} height={height - margin * 2} width={1} />
8-
<rect x={0} y={0} width={margin * 2} height={height} fill={'#EEE'} />
8+
<rect x={0} y={0} width={margin * 2} height={height} fill={'white'} />
99
{yScale.ticks().map((t) => {
1010
const y = yScale(t);
1111

binocular-frontend-new/src/plugins/visualizationPlugins/issues/issuesTimeline/src/chart/Chart.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import { useDispatch, useSelector } from 'react-redux';
55
import type { DataPluginIssue } from '../../../../../interfaces/dataPluginInterfaces/dataPluginIssues.ts';
66
import type { VisualizationPluginProperties } from '../../../../../interfaces/visualizationPluginInterfaces/visualizationPluginProperties.ts';
77
import { handelPopoutResizing } from '../../../../../utils/resizing.ts';
8-
import { getDataSlice } from '../../../../simpleVisualizationPlugin/src/reducer';
9-
import { DataState, type IssuesTimelineState } from '../reducer';
8+
import { DataState, type IssuesTimelineState, setDateRange } from '../reducer';
109
import type { IssuesTimelineSettings } from '../settings/settings.tsx';
1110
import { IssuesTimelineChart } from './IssuesTimelineChart.tsx';
1211

@@ -54,7 +53,7 @@ const Chart = (props: VisualizationPluginProperties<IssuesTimelineSettings, Data
5453

5554
//Set Global state when parameters change. This will also conclude in a refresh of the data.
5655
useEffect(() => {
57-
dispatch(getDataSlice(props.dataName!).actions.setDateRange(props.parameters.parametersDateRange));
56+
dispatch(setDateRange(props.parameters.parametersDateRange));
5857
}, [props.parameters]);
5958

6059
//Trigger Refresh when dataConnection changes

binocular-frontend-new/src/plugins/visualizationPlugins/issues/issuesTimeline/src/chart/components/DetailDialog.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as React from 'react';
44
import type { AuthorType } from '../../../../../../../types/data/authorType';
55
import { BaseDetailDialogLayout } from '../../../../../../components/BaseDetailDialogLayout';
66
import type { MappedSprint } from '../../../../../../components/SprintAreas';
7-
import { extractTimeTrackingDataFromNotes } from '../../../../../../utils/extractTimeTrackingDataFromNotes';
7+
import { extractTimeTrackingDataFromNotes } from '../../../../../utils/extractTimeTrackingDataFromNotes';
88
import { aggregateTimeTrackingData } from '../helper/aggregateTimeTrackingData';
99
import type { MappedDataPluginIssue, MappedDataPluginMergeRequest } from '../types';
1010

@@ -19,6 +19,7 @@ const formatHours = (time: number) => {
1919
return `${hours}h ${minutes}min`;
2020
};
2121

22+
// TODO refactor when Dialog is extendable
2223
export const DetailDialogIssue: React.FC<{
2324
iid: number;
2425
anchor: SVGElement;

binocular-frontend-new/src/plugins/visualizationPlugins/issues/issuesTimeline/src/chart/components/IssuesTimelineChartIssue.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as d3 from 'd3';
22
import type { Moment } from 'moment';
33
import * as React from 'react';
44
import type { AuthorType } from '../../../../../../../types/data/authorType';
5-
import { extractTimeTrackingDataFromNotes } from '../../../../../../utils/extractTimeTrackingDataFromNotes';
5+
import { extractTimeTrackingDataFromNotes } from '../../../../../utils/extractTimeTrackingDataFromNotes';
66
import type { IssuesTimelineSettings } from '../../settings/settings';
77
import { margin } from '../IssuesTimelineChart';
88
import { aggregateTimeTrackingData } from '../helper/aggregateTimeTrackingData';

binocular-frontend-new/src/plugins/visualizationPlugins/issues/issuesTimeline/src/chart/components/IssuesTimelineChartLegend.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export const IssuesTimelineChartLegend: React.FC<{
1313
<g>
1414
<rect x={margin} y={height - margin * 2} height={1} width={width - margin * 2} />
1515

16-
<rect x={margin} y={height - margin * 2 + 1} width={width - margin * 2} height={40} fill={'#EEE'} />
16+
<rect x={margin} y={height - margin * 2 + 1} width={width - margin * 2} height={40} fill={'white'} />
1717

1818
{xScale.ticks().map((tick) => {
1919
const x = xScale(tick);

binocular-frontend-new/src/plugins/visualizationPlugins/issues/issuesTimeline/src/chart/helper/aggregateTimeTrackingData.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { TimeTrackingData } from '../../../../../authorBehaviour/timeSpent/src/utilities/dataConverter';
1+
import type { TimeTrackingData } from '../../../../../types/timeTrackingDataType';
22

33
export const aggregateTimeTrackingData = (timeTrackingData: TimeTrackingData[]) => {
44
const aggregatedTimeTrackingData = new Map<string, number>();

binocular-frontend-new/src/plugins/visualizationPlugins/issues/issuesTimeline/src/help/help.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
export const Help = () => (
22
<>
3-
<h2>Sprints Help</h2>
3+
<h2>Issues Timeline Help</h2>
44

55
<h3>Data</h3>
66
<p>
7-
The sprints visualization provides an overview of the issues and merge requests in a given time frame. It allows users to view these
8-
issues and merge requests on a timeline. The issues can be colored based on different modes. It is also possible to overlay the
7+
The Issues Timeline visualization provides an overview of the issues and merge requests in a given time frame. It allows users to view
8+
these issues and merge requests on a timeline. The issues can be colored based on different modes. It is also possible to overlay the
99
sprints in the selected time frame.
1010
</p>
1111

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { type DataPluginAccount } from '../../interfaces/dataPluginInterfaces/dataPluginAccounts';
2+
import { type DataPluginIssue } from '../../interfaces/dataPluginInterfaces/dataPluginIssues';
3+
import { type DataPluginMergeRequest } from '../../interfaces/dataPluginInterfaces/dataPluginMergeRequests';
4+
5+
export interface TimeTrackingData {
6+
author: DataPluginAccount;
7+
timeSpent: number;
8+
createdAt: string;
9+
issue: DataPluginIssue | null;
10+
mergeRequest: DataPluginMergeRequest | null;
11+
}

0 commit comments

Comments
 (0)