Create a feature flag for dashboards v2 (#15601)
Prevent users from creating v2 chart types via the api. Only created unit tests and not integration tests (since it's not that important, and the v2 will be released soon), but tested via the api playground.
This commit is contained in:
+5
@@ -81,6 +81,11 @@ export const seedFeatureFlags = async (
|
||||
workspaceId: workspaceId,
|
||||
value: true,
|
||||
},
|
||||
{
|
||||
key: FeatureFlagKey.IS_DASHBOARD_V2_ENABLED,
|
||||
workspaceId: workspaceId,
|
||||
value: true,
|
||||
},
|
||||
])
|
||||
.execute();
|
||||
};
|
||||
|
||||
+18
-10
@@ -4,21 +4,29 @@ import { validateAndTransformWidgetConfiguration } from 'src/engine/core-modules
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { getPageLayoutWidgetDataSeeds } from 'src/engine/workspace-manager/dev-seeder/core/utils/get-page-layout-widget-data-seeds.util';
|
||||
|
||||
export const seedPageLayoutWidgets = async (
|
||||
dataSource: DataSource,
|
||||
schemaName: string,
|
||||
workspaceId: string,
|
||||
objectMetadataItems: ObjectMetadataEntity[],
|
||||
) => {
|
||||
export const seedPageLayoutWidgets = async ({
|
||||
dataSource,
|
||||
schemaName,
|
||||
workspaceId,
|
||||
objectMetadataItems,
|
||||
isDashboardV2Enabled,
|
||||
}: {
|
||||
dataSource: DataSource;
|
||||
schemaName: string;
|
||||
workspaceId: string;
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
isDashboardV2Enabled: boolean;
|
||||
}) => {
|
||||
const pageLayoutWidgets = getPageLayoutWidgetDataSeeds(
|
||||
workspaceId,
|
||||
objectMetadataItems,
|
||||
).map((widget) => {
|
||||
const validatedConfiguration = widget.configuration
|
||||
? validateAndTransformWidgetConfiguration(
|
||||
widget.type,
|
||||
widget.configuration,
|
||||
)
|
||||
? validateAndTransformWidgetConfiguration({
|
||||
type: widget.type,
|
||||
configuration: widget.configuration,
|
||||
isDashboardV2Enabled,
|
||||
})
|
||||
: null;
|
||||
|
||||
return {
|
||||
|
||||
+11
-4
@@ -3,6 +3,7 @@ import { InjectDataSource } from '@nestjs/typeorm';
|
||||
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
|
||||
import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service';
|
||||
import { TwentyConfigService } from 'src/engine/core-modules/twenty-config/twenty-config.service';
|
||||
import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service';
|
||||
@@ -89,12 +90,18 @@ export class DevSeederService {
|
||||
relations: { fields: true },
|
||||
});
|
||||
|
||||
await seedPageLayoutWidgets(
|
||||
this.coreDataSource,
|
||||
'core',
|
||||
const isDashboardV2Enabled = await this.featureFlagService.isFeatureEnabled(
|
||||
FeatureFlagKey.IS_DASHBOARD_V2_ENABLED,
|
||||
workspaceId,
|
||||
);
|
||||
|
||||
await seedPageLayoutWidgets({
|
||||
dataSource: this.coreDataSource,
|
||||
schemaName: 'core',
|
||||
workspaceId,
|
||||
objectMetadataItems,
|
||||
);
|
||||
isDashboardV2Enabled,
|
||||
});
|
||||
|
||||
await this.devSeederDataService.seed({
|
||||
schemaName: dataSourceMetadata.schema,
|
||||
|
||||
Reference in New Issue
Block a user