Allow standard field default value and settings editing (#7104) (#8559)

Co-authored-by: Marie Stoppa <marie.stoppa@essec.edu>
This commit is contained in:
ad-elias
2024-11-26 10:03:48 +01:00
committed by GitHub
parent 7bde2006c5
commit 2e75fae3ad
6 changed files with 19 additions and 62 deletions

View File

@ -632,23 +632,25 @@ export class FieldMetadataService extends TypeOrmQueryService<FieldMetadataEntit
fieldMetadataInput: UpdateFieldInput,
existingFieldMetadata: FieldMetadataEntity,
) {
let fieldMetadataInputOverrided = {};
fieldMetadataInputOverrided = {
const updatableStandardFieldInput: UpdateFieldInput = {
id: fieldMetadataInput.id,
isActive: fieldMetadataInput.isActive,
workspaceId: fieldMetadataInput.workspaceId,
defaultValue: fieldMetadataInput.defaultValue,
settings: fieldMetadataInput.settings,
};
if (existingFieldMetadata.type === FieldMetadataType.SELECT) {
fieldMetadataInputOverrided = {
...fieldMetadataInputOverrided,
if (
existingFieldMetadata.type === FieldMetadataType.SELECT ||
existingFieldMetadata.type === FieldMetadataType.MULTI_SELECT
) {
return {
...updatableStandardFieldInput,
options: fieldMetadataInput.options,
};
}
return fieldMetadataInputOverrided as UpdateFieldInput;
return updatableStandardFieldInput;
}
public async getRelationDefinitionFromRelationMetadata(

View File

@ -8,10 +8,7 @@ import {
} from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/comparator.interface';
import { ComputedPartialFieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/partial-field-metadata.interface';
import {
FieldMetadataEntity,
FieldMetadataType,
} from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { transformMetadataForComparison } from 'src/engine/workspace-manager/workspace-sync-metadata/comparators/utils/transform-metadata-for-comparison.util';
const commonFieldPropertiesToIgnore = [
@ -26,6 +23,7 @@ const commonFieldPropertiesToIgnore = [
'gate',
'asExpression',
'generatedType',
'defaultValue',
];
const fieldPropertiesToStringify = ['defaultValue'] as const;
@ -57,19 +55,11 @@ export class WorkspaceFieldComparator {
const originalFieldMetadataMap = transformMetadataForComparison(
filteredOriginalFieldCollection,
{
shouldIgnoreProperty: (property, originalMetadata) => {
shouldIgnoreProperty: (property) => {
if (commonFieldPropertiesToIgnore.includes(property)) {
return true;
}
if (
originalMetadata &&
property === 'defaultValue' &&
originalMetadata.type === FieldMetadataType.SELECT
) {
return true;
}
return false;
},
propertiesToStringify: fieldPropertiesToStringify,
@ -82,19 +72,11 @@ export class WorkspaceFieldComparator {
const standardFieldMetadataMap = transformMetadataForComparison(
standardFieldMetadataCollection,
{
shouldIgnoreProperty: (property, originalMetadata) => {
shouldIgnoreProperty: (property) => {
if (commonFieldPropertiesToIgnore.includes(property)) {
return true;
}
if (
originalMetadata &&
property === 'defaultValue' &&
originalMetadata.type === FieldMetadataType.SELECT
) {
return true;
}
return false;
},
propertiesToStringify: fieldPropertiesToStringify,