Page layout various fixes (#17996)

## Context
- Add missing fields widget and FIELDS_WIDGET view for workflow run and
workflow version standard objects
- Fix FIELDS_WIDGET configuration fieldId universalIdentifier not being
converted to id when migration is executed.
This commit is contained in:
Weiko
2026-02-17 15:12:04 +01:00
committed by GitHub
parent 347298902d
commit 20977428a1
13 changed files with 574 additions and 101 deletions
@@ -42,6 +42,7 @@ export class CreatePageLayoutWidgetActionHandlerService extends WorkspaceMigrati
fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration({
universalConfiguration: action.flatEntity.universalConfiguration,
flatFieldMetadataMaps: allFlatEntityMaps.flatFieldMetadataMaps,
flatViewMaps: allFlatEntityMaps.flatViewMaps,
});
const emptyUniversalForeignKeyAggregators =
@@ -50,6 +50,7 @@ export class UpdatePageLayoutWidgetActionHandlerService extends WorkspaceMigrati
fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration({
universalConfiguration,
flatFieldMetadataMaps: allFlatEntityMaps.flatFieldMetadataMaps,
flatViewMaps: allFlatEntityMaps.flatViewMaps,
}),
};
@@ -41,9 +41,11 @@ const resolveFieldMetadataIdOrThrow = ({
export const fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration = ({
universalConfiguration,
flatFieldMetadataMaps,
flatViewMaps,
}: {
universalConfiguration: FlatPageLayoutWidget['universalConfiguration'];
flatFieldMetadataMaps: MetadataFlatEntityMaps<'fieldMetadata'>;
flatViewMaps: MetadataFlatEntityMaps<'view'>;
}): FlatPageLayoutWidget['configuration'] => {
switch (universalConfiguration.configurationType) {
case WidgetConfigurationType.AGGREGATE_CHART: {
@@ -195,9 +197,31 @@ export const fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration = ({
};
}
case WidgetConfigurationType.FIELDS: {
const { viewId: viewUniversalIdentifier, ...rest } =
universalConfiguration;
if (!isDefined(viewUniversalIdentifier)) {
return { ...rest, viewId: null };
}
const flatView = findFlatEntityByUniversalIdentifier({
flatEntityMaps: flatViewMaps,
universalIdentifier: viewUniversalIdentifier,
});
if (!isDefined(flatView)) {
throw new FlatEntityMapsException(
`View not found for universal identifier: ${viewUniversalIdentifier}`,
FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND,
);
}
return { ...rest, viewId: flatView.id };
}
case WidgetConfigurationType.VIEW:
case WidgetConfigurationType.FIELD:
case WidgetConfigurationType.FIELDS:
case WidgetConfigurationType.TIMELINE:
case WidgetConfigurationType.TASKS:
case WidgetConfigurationType.NOTES: