[Dashboards] Remove gauge chart types and code (#20410)

Follow-up cleanup to #20172.
This commit is contained in:
nitin
2026-05-29 14:38:50 +05:30
committed by GitHub
parent 961745e9ba
commit 13f09d8946
68 changed files with 607 additions and 2326 deletions
@@ -126,27 +126,6 @@ export const fromPageLayoutWidgetConfigurationToUniversalConfiguration = ({
};
}
case WidgetConfigurationType.GAUGE_CHART: {
const { aggregateFieldMetadataId, filter, ...rest } = configuration;
const aggregateFieldMetadataUniversalIdentifier =
getFieldMetadataUniversalIdentifier({
fieldMetadataId: aggregateFieldMetadataId,
fieldMetadataUniversalIdentifierById,
shouldThrowOnMissingIdentifier,
});
return {
...rest,
aggregateFieldMetadataUniversalIdentifier,
filter: convertChartFilterToUniversalFilter({
filter,
fieldMetadataUniversalIdentifierById,
shouldThrowOnMissingIdentifier,
}),
};
}
case WidgetConfigurationType.PIE_CHART: {
const {
aggregateFieldMetadataId,
@@ -5,5 +5,4 @@ export const VALID_GRAPH_CONFIGURATION_TYPES = [
WidgetConfigurationType.BAR_CHART,
WidgetConfigurationType.LINE_CHART,
WidgetConfigurationType.PIE_CHART,
WidgetConfigurationType.GAUGE_CHART,
] as const;
@@ -1,6 +1,5 @@
import { type AggregateChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/aggregate-chart-configuration.dto';
import { type BarChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/bar-chart-configuration.dto';
import { type GaugeChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/gauge-chart-configuration.dto';
import { type LineChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/line-chart-configuration.dto';
import { type PieChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/pie-chart-configuration.dto';
@@ -8,5 +7,4 @@ export type GraphConfiguration =
| BarChartConfigurationDTO
| LineChartConfigurationDTO
| PieChartConfigurationDTO
| AggregateChartConfigurationDTO
| GaugeChartConfigurationDTO;
| AggregateChartConfigurationDTO;
@@ -34,7 +34,6 @@ export const validateGraphConfigurationByType = ({
widgetTitle,
});
case WidgetConfigurationType.AGGREGATE_CHART:
case WidgetConfigurationType.GAUGE_CHART:
return [];
default:
return [];
@@ -8,7 +8,6 @@ import { FieldRichTextConfigurationDTO } from 'src/engine/metadata-modules/page-
import { FieldsConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/fields-configuration.dto';
import { FilesConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/files-configuration.dto';
import { FrontComponentConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/front-component-configuration.dto';
import { GaugeChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/gauge-chart-configuration.dto';
import { IframeConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/iframe-configuration.dto';
import { LineChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/line-chart-configuration.dto';
import { NotesConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/notes-configuration.dto';
@@ -31,7 +30,6 @@ export const ALL_WIDGET_CONFIGURATION_TYPE_VALIDATOR_BY_WIDGET_CONFIGURATION_TYP
PIE_CHART: PieChartConfigurationDTO,
LINE_CHART: LineChartConfigurationDTO,
IFRAME: IframeConfigurationDTO,
GAUGE_CHART: GaugeChartConfigurationDTO,
BAR_CHART: BarChartConfigurationDTO,
CALENDAR: CalendarConfigurationDTO,
FRONT_COMPONENT: FrontComponentConfigurationDTO,
@@ -3,7 +3,6 @@ import { WidgetConfigurationType } from 'src/engine/metadata-modules/page-layout
export const GRAPH_CONFIGURATION_TYPES = new Set<WidgetConfigurationType>([
WidgetConfigurationType.AGGREGATE_CHART,
WidgetConfigurationType.BAR_CHART,
WidgetConfigurationType.GAUGE_CHART,
WidgetConfigurationType.LINE_CHART,
WidgetConfigurationType.PIE_CHART,
]);
@@ -1,75 +0,0 @@
import { Field, Int, ObjectType } from '@nestjs/graphql';
import {
IsBoolean,
IsEnum,
IsIn,
IsNotEmpty,
IsObject,
IsOptional,
IsString,
IsTimeZone,
IsUUID,
Max,
Min,
} from 'class-validator';
import { GraphQLJSON } from 'graphql-type-json';
import { CalendarStartDay } from 'twenty-shared/constants';
import {
AggregateOperations,
type ChartFilter,
type GaugeChartConfiguration,
SerializedRelation,
} from 'twenty-shared/types';
import { UUIDScalarType } from 'src/engine/api/graphql/workspace-schema-builder/graphql-types/scalars';
import { WidgetConfigurationType } from 'src/engine/metadata-modules/page-layout-widget/enums/widget-configuration-type.type';
@ObjectType('GaugeChartConfiguration')
export class GaugeChartConfigurationDTO implements GaugeChartConfiguration {
@Field(() => WidgetConfigurationType)
@IsIn([WidgetConfigurationType.GAUGE_CHART])
@IsNotEmpty()
configurationType: WidgetConfigurationType.GAUGE_CHART;
@Field(() => UUIDScalarType)
@IsUUID()
@IsNotEmpty()
aggregateFieldMetadataId: SerializedRelation;
@Field(() => AggregateOperations)
@IsEnum(AggregateOperations)
@IsNotEmpty()
aggregateOperation: AggregateOperations;
@Field(() => Boolean, { nullable: true, defaultValue: false })
@IsBoolean()
@IsOptional()
displayDataLabel?: boolean;
@Field(() => String, { nullable: true })
@IsString()
@IsOptional()
color?: string;
@Field(() => String, { nullable: true })
@IsString()
@IsOptional()
description?: string;
@Field(() => GraphQLJSON, { nullable: true })
@IsObject()
@IsOptional()
filter?: ChartFilter;
@Field(() => String, { nullable: true, defaultValue: 'UTC' })
@IsTimeZone()
@IsOptional()
timezone?: string;
@Field(() => Int, { nullable: true, defaultValue: CalendarStartDay.MONDAY })
@IsOptional()
@Min(0)
@Max(7)
firstDayOfTheWeek?: number;
}
@@ -2,7 +2,6 @@ import { registerEnumType } from '@nestjs/graphql';
export enum GraphType {
AGGREGATE_CHART = 'AGGREGATE_CHART',
GAUGE_CHART = 'GAUGE_CHART',
PIE_CHART = 'PIE_CHART',
BAR_CHART = 'BAR_CHART',
LINE_CHART = 'LINE_CHART',
@@ -6,7 +6,6 @@ import { GraphType } from 'src/engine/metadata-modules/page-layout-widget/enums/
export enum WidgetConfigurationType {
AGGREGATE_CHART = GraphType.AGGREGATE_CHART,
GAUGE_CHART = GraphType.GAUGE_CHART,
PIE_CHART = GraphType.PIE_CHART,
BAR_CHART = GraphType.BAR_CHART,
LINE_CHART = GraphType.LINE_CHART,
@@ -31,7 +30,6 @@ export enum WidgetConfigurationType {
}
export type AllGraphWidgetConfigurationType =
| WidgetConfigurationType.AGGREGATE_CHART
| WidgetConfigurationType.GAUGE_CHART
| WidgetConfigurationType.PIE_CHART
| WidgetConfigurationType.BAR_CHART
| WidgetConfigurationType.LINE_CHART;
@@ -1,12 +1,10 @@
import { type AggregateChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/aggregate-chart-configuration.dto';
import { type BarChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/bar-chart-configuration.dto';
import { type GaugeChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/gauge-chart-configuration.dto';
import { type LineChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/line-chart-configuration.dto';
import { type PieChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/pie-chart-configuration.dto';
export type ChartReferencingFieldInConfiguration =
| AggregateChartConfigurationDTO
| BarChartConfigurationDTO
| GaugeChartConfigurationDTO
| LineChartConfigurationDTO
| PieChartConfigurationDTO;
@@ -7,7 +7,6 @@ import {
INVALID_STANDALONE_RICH_TEXT_CONFIG_BODY_WRONG_TYPE,
INVALID_STANDALONE_RICH_TEXT_CONFIG_MISSING_BODY,
INVALID_VERTICAL_BAR_CHART_CONFIG_MISSING_GROUP_BY,
TEST_GAUGE_CHART_CONFIG,
TEST_HORIZONTAL_BAR_CHART_CONFIG,
TEST_HORIZONTAL_BAR_CHART_CONFIG_MINIMAL,
TEST_IFRAME_CONFIG,
@@ -206,16 +205,6 @@ describe('validateWidgetConfigurationInput', () => {
).not.toThrow();
});
});
describe('GAUGE_CHART graph', () => {
it('should not throw for gauge chart configuration', () => {
expect(() =>
validateWidgetConfigurationInput({
configuration: TEST_GAUGE_CHART_CONFIG,
}),
).not.toThrow();
});
});
});
describe('Edge cases', () => {
@@ -4,7 +4,6 @@ import { AggregateChartConfigurationDTO } from 'src/engine/metadata-modules/page
import { BarChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/bar-chart-configuration.dto';
import { FieldConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/field-configuration.dto';
import { FrontComponentConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/front-component-configuration.dto';
import { GaugeChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/gauge-chart-configuration.dto';
import { IframeConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/iframe-configuration.dto';
import { LineChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/line-chart-configuration.dto';
import { PieChartConfigurationDTO } from 'src/engine/metadata-modules/page-layout-widget/dtos/pie-chart-configuration.dto';
@@ -98,12 +97,6 @@ export const validateWidgetConfigurationInput = ({
configuration,
);
break;
case WidgetConfigurationType.GAUGE_CHART:
errors = validateWidgetConfigurationByDto(
GaugeChartConfigurationDTO,
configuration,
);
break;
case WidgetConfigurationType.IFRAME:
errors = validateWidgetConfigurationByDto(
IframeConfigurationDTO,