Skip to content

Commit e4c58e9

Browse files
committed
#278: Fixes differences from new dev branch
Moves the whole sumCommits plugin into the respective category, adds the missing metadata field to properly display it again, fixes new way to fetch the users, adds missing type keyword for imports
1 parent 28ea8a4 commit e4c58e9

File tree

14 files changed

+82
-60
lines changed

14 files changed

+82
-60
lines changed

binocular-frontend-new/src/plugins/pluginRegistry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import type { BuildSettings } from './visualizationPlugins/builds/builds/src/set
1616
import type { TimeSpentSettings } from './visualizationPlugins/authorBehaviour/timeSpent/src/settings/settings.tsx';
1717
import type { ChangesSettings } from './visualizationPlugins/commits/changes/src/settings/settings.tsx';
1818
import type { MergeRequestsSettings } from './visualizationPlugins/issues/mergeRequests/src/settings/settings.tsx';
19-
import { SumSettings } from './visualizationPlugins/simpleVisualizationPlugin/src/settings/settings.tsx';
19+
import type { SumSettings } from './visualizationPlugins/simpleVisualizationPlugin/src/settings/settings.tsx';
2020
import Builds from './visualizationPlugins/builds/builds';
2121
import Changes from './visualizationPlugins/commits/changes/src/index.tsx';
2222
import Issues from './visualizationPlugins/issues/issues';
@@ -35,7 +35,7 @@ import CodeExpertise from './visualizationPlugins/expertise/codeExpertise';
3535
import RepositoryActivity from './visualizationPlugins/authorBehaviour/repositoryActivity';
3636
import Sprints from './visualizationPlugins/issues/sprints';
3737
import Burndown from './visualizationPlugins/issues/burndown';
38-
import SumCommits from './visualizationPlugins/sumCommits';
38+
import SumCommits from './visualizationPlugins/commits/sumCommits';
3939

4040
// should currently work for commits, but fetching the data is still hardcoded to one or the other
4141
const changes = createVisualizationPlugin<ChangesSettings, DataPluginCommit>(Changes);

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/assets/thumbnail.ai renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/assets/thumbnail.ai

File renamed without changes.

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/assets/thumbnail.svg renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/assets/thumbnail.svg

File renamed without changes.

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/package.json renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/package.json

File renamed without changes.

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/src/help/help.tsx renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/src/help/help.tsx

File renamed without changes.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import PreviewImage from '../assets/thumbnail.svg';
2+
import Settings, { type SettingsType } from './settings/settings.tsx';
3+
import type { VisualizationPlugin } from '../../../../interfaces/visualizationPlugin.ts';
4+
import { getSVGData } from './utilities/utilities.ts';
5+
import Reducer from '../../../simpleVisualizationPlugin/src/reducer';
6+
import Saga from './saga';
7+
import Help from './help/help.tsx';
8+
import { convertToChartData } from './utilities/dataConverter.ts';
9+
import type { DataPluginCommit } from '../../../../interfaces/dataPluginInterfaces/dataPluginCommits.ts';
10+
import { VisualizationPluginMetadataCategory } from '../../../../interfaces/visualizationPluginInterfaces/visualizationPluginMetadata';
11+
12+
const SumCommits: VisualizationPlugin<SettingsType, DataPluginCommit> = {
13+
name: 'SumCommits',
14+
// ts-expect-error
15+
chartComponent: undefined,
16+
settingsComponent: Settings,
17+
helpComponent: Help,
18+
dataConverter: convertToChartData,
19+
dataConnectionName: 'commits',
20+
defaultSettings: { showMean: false, showOther: false },
21+
export: {
22+
getSVGData: getSVGData,
23+
},
24+
capabilities: {
25+
popoutOnly: false,
26+
export: true,
27+
},
28+
images: {
29+
thumbnail: PreviewImage,
30+
},
31+
metadata: {
32+
category: VisualizationPluginMetadataCategory.Commits,
33+
recommended: false,
34+
description: 'A bar chart which shows how manny commits each author has contributed over the time.',
35+
compatibility: { binocularBackend: true, githubAPI: true, mockData: true, pouchDB: true, github: true, gitlab: true },
36+
},
37+
reducer: Reducer,
38+
saga: Saga,
39+
};
40+
41+
export default SumCommits;

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/src/reducer/index.ts renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/src/reducer/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
2-
import { DataPluginCommit } from '../../../../interfaces/dataPluginInterfaces/dataPluginCommits.ts';
1+
import { createSlice, type PayloadAction } from '@reduxjs/toolkit';
2+
import type {DataPluginCommit} from '../../../../../interfaces/dataPluginInterfaces/dataPluginCommits.ts';
33

44
export enum DataState {
55
EMPTY,

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/src/saga/index.ts renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/src/saga/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { put, takeEvery, fork, call, select, throttle } from 'redux-saga/effects';
2-
import { SumCommitsState, DataState, setCommits, setDataState, setDateRange } from '../reducer';
3-
import { DataPlugin } from '../../../../interfaces/dataPlugin.ts';
4-
import { DataPluginCommit } from '../../../../interfaces/dataPluginInterfaces/dataPluginCommits.ts';
2+
import { type SumCommitsState, DataState, setCommits, setDataState, setDateRange } from '../reducer';
3+
import type { DataPlugin } from '../../../../../interfaces/dataPlugin.ts';
4+
import type { DataPluginCommit } from '../../../../../interfaces/dataPluginInterfaces/dataPluginCommits.ts';
55

66
export default function* (dataConnection: DataPlugin) {
77
yield fork(() => watchRefresh(dataConnection));

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/src/settings/settings.tsx renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/src/settings/settings.tsx

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
import { useEffect, useState } from 'react';
1+
import { useEffect, useMemo, useState } from 'react';
2+
import type { RootState } from '../../../../../../redux';
3+
import { useSelector } from 'react-redux';
24

35
export interface SettingsType {
46
showMean: boolean;
@@ -9,13 +11,25 @@ export interface SettingsType {
911
interface SettingsProps {
1012
settings: SettingsType;
1113
setSettings: (newSettings: SettingsType) => void;
12-
users: string[];
1314
}
1415

15-
function Settings({ settings, setSettings, users }: SettingsProps) {
16+
function Settings({ settings, setSettings }: SettingsProps) {
17+
const authors = useSelector((s: RootState) => {
18+
const id = s.authors.dataPluginId;
19+
20+
return id == null ? [] : (s.authors.authorLists[id] ?? []);
21+
});
22+
23+
const users = useMemo(
24+
() => authors.map((a) => a.displayName ?? a.user?.gitSignature ?? a.user?.name ?? a.user?.id).filter(Boolean) as string[],
25+
[authors],
26+
);
27+
1628
const [selectedUsers, setSelectedUsers] = useState<string[]>([]);
1729

18-
useEffect(() => setSelectedUsers(users), [users]);
30+
useEffect(() => {
31+
setSelectedUsers(users);
32+
}, [users]);
1933

2034
const toggleUser = (user: string) => {
2135
if (selectedUsers.includes(user)) {
@@ -100,15 +114,15 @@ function Settings({ settings, setSettings, users }: SettingsProps) {
100114
</div>
101115

102116
<button
103-
className="btn btn-accent btn-sm"
117+
className="btn btn-accent btn-sm mt-6"
104118
disabled={selectedUsers.length < 2}
105119
onClick={() => {
106120
combineUsers();
107121
}}>
108122
Combine
109123
</button>
110124

111-
<button className="btn btn-accent btn-sm" onClick={uncombineUsers} style={{ marginLeft: '0.5rem' }}>
125+
<button className="btn btn-accent btn-sm mt-6" onClick={uncombineUsers} style={{ marginLeft: '0.5rem' }}>
112126
Uncombine
113127
</button>
114128
</>

binocular-frontend-new/src/plugins/visualizationPlugins/sumCommits/src/utilities/dataConverter.ts renamed to binocular-frontend-new/src/plugins/visualizationPlugins/commits/sumCommits/src/utilities/dataConverter.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import moment from 'moment/moment';
22
import chroma from 'chroma-js';
33
import _ from 'lodash';
4-
import { DataPluginCommit } from '../../../../interfaces/dataPluginInterfaces/dataPluginCommits.ts';
5-
import { AuthorType } from '../../../../../types/data/authorType.ts';
6-
import { Properties } from '../../../simpleVisualizationPlugin/src/interfaces/properties.ts';
7-
import { SettingsType } from '../settings/settings.tsx';
4+
import type { DataPluginCommit } from '../../../../../interfaces/dataPluginInterfaces/dataPluginCommits.ts';
5+
import type { AuthorType } from '../../../../../../types/data/authorType.ts';
6+
import type { VisualizationPluginProperties } from '../../../../../interfaces/visualizationPluginInterfaces/visualizationPluginProperties.ts';
7+
import type { SettingsType } from '../settings/settings.tsx';
88

99
interface BarChartData {
1010
user: string;
@@ -19,7 +19,7 @@ interface Palette {
1919

2020
export function convertToChartData(
2121
commits: DataPluginCommit[],
22-
props: Properties<SettingsType, DataPluginCommit>,
22+
props: VisualizationPluginProperties<SettingsType, DataPluginCommit>,
2323
): {
2424
chartData: BarChartData[];
2525
scale: number[];

0 commit comments

Comments
 (0)