Deprecate old board (#4352)

* Deprecate old board

* Fix tests

* Fix tests
This commit is contained in:
Charles Bochet
2024-03-07 10:02:45 +01:00
committed by GitHub
parent 4f4ce1c655
commit 9190bd8d7f
109 changed files with 18 additions and 4941 deletions

View File

@ -0,0 +1,49 @@
import { RecordBoardFieldDefinition } from '@/object-record/record-board/types/RecordBoardFieldDefinition';
import { FieldMetadata } from '@/object-record/record-field/types/FieldMetadata';
import { mapBoardFieldDefinitionsToViewFields } from '@/views/utils/mapBoardFieldDefinitionsToViewFields';
describe('mapBoardFieldDefinitionsToViewFields', () => {
it('should map board field definitions to view fields', () => {
const fieldDefinitions: RecordBoardFieldDefinition<FieldMetadata>[] = [
{
fieldMetadataId: 'fieldMetadataId',
label: 'label',
iconName: 'iconName',
type: 'BOOLEAN',
metadata: {
objectMetadataNameSingular: 'objectMetadataNameSingular',
fieldName: 'fieldName',
},
position: 0,
isVisible: true,
viewFieldId: 'viewFieldId',
},
{
fieldMetadataId: 'fieldMetadataId1',
label: 'label1',
iconName: 'iconName1',
type: 'NUMBER',
metadata: {
objectMetadataNameSingular: 'objectMetadataNameSingular1',
fieldName: 'fieldName1',
placeHolder: 'placeHolder1',
isPositive: true,
},
position: 1,
isVisible: false,
viewFieldId: 'viewFieldId1',
},
];
const viewFields = mapBoardFieldDefinitionsToViewFields(fieldDefinitions);
expect(viewFields).toHaveLength(2);
expect(viewFields[0]).toHaveProperty('id');
expect(viewFields[0]).toHaveProperty('size');
expect(viewFields[0]).toHaveProperty('position');
expect(viewFields[0]).toHaveProperty('isVisible');
expect(viewFields[0].definition).toEqual(fieldDefinitions[0]);
expect(viewFields[1].definition).toEqual(fieldDefinitions[1]);
});
});

View File

@ -1,6 +1,5 @@
import { Filter } from '@/object-record/object-filter-dropdown/types/Filter';
import { Sort } from '@/object-record/object-sort-dropdown/types/Sort';
import { BoardFieldDefinition } from '@/object-record/record-board-deprecated/types/BoardFieldDefinition';
import { FieldMetadata } from '@/object-record/record-field/types/FieldMetadata';
import { ColumnDefinition } from '@/object-record/record-table/types/ColumnDefinition';
import { ViewField } from '@/views/types/ViewField';
@ -8,7 +7,6 @@ import { ViewFilter } from '@/views/types/ViewFilter';
import { ViewFilterOperand } from '@/views/types/ViewFilterOperand';
import { ViewSort } from '@/views/types/ViewSort';
import { mapColumnDefinitionsToViewFields } from '@/views/utils/mapColumnDefinitionToViewField';
import { mapViewFieldsToBoardFieldDefinitions } from '@/views/utils/mapViewFieldsToBoardFieldDefinitions';
import { mapViewFieldsToColumnDefinitions } from '@/views/utils/mapViewFieldsToColumnDefinitions';
import { mapViewFiltersToFilters } from '@/views/utils/mapViewFiltersToFilters';
import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts';
@ -192,84 +190,6 @@ describe('mapViewFieldsToColumnDefinitions', () => {
});
});
describe('mapViewFieldsToBoardFieldDefinitions', () => {
it('should map visible ViewFields to BoardFieldDefinitions and filter out missing fieldMetadata', () => {
const viewFields = [
{
id: 1,
fieldMetadataId: 1,
position: 1,
isVisible: true,
},
{
id: 2,
fieldMetadataId: 2,
position: 2,
isVisible: false,
},
{
id: 3,
fieldMetadataId: 3,
position: 3,
isVisible: true,
},
];
const fieldsMetadata = [
{
fieldMetadataId: 1,
label: 'Field 1',
metadata: {},
position: 1,
infoTooltipContent: 'Tooltip content for Field 1',
iconName: 'icon-field-1',
type: 'string',
},
{
fieldMetadataId: 3,
label: 'Field 3',
metadata: {},
position: 3,
infoTooltipContent: 'Tooltip for Field 3',
iconName: 'icon-field-3',
type: 'number',
},
];
const expectedBoardFieldDefinitions = [
{
fieldMetadataId: 1,
label: 'Field 1',
metadata: {},
position: 1,
infoTooltipContent: 'Tooltip content for Field 1',
iconName: 'icon-field-1',
type: 'string',
isVisible: true,
viewFieldId: 1,
},
{
fieldMetadataId: 3,
label: 'Field 3',
metadata: {},
position: 3,
infoTooltipContent: 'Tooltip for Field 3',
iconName: 'icon-field-3',
type: 'number',
isVisible: true,
viewFieldId: 3,
},
];
const actualBoardFieldDefinitions = mapViewFieldsToBoardFieldDefinitions(
viewFields as unknown as ViewField[],
fieldsMetadata as unknown as BoardFieldDefinition<FieldMetadata>[],
);
expect(actualBoardFieldDefinitions).toEqual(expectedBoardFieldDefinitions);
});
});
describe('mapColumnDefinitionsToViewFields', () => {
it('should map ColumnDefinitions to ViewFields, setting defaults and using viewFieldId if present', () => {
const columnDefinitions = [

View File

@ -0,0 +1,20 @@
import { v4 } from 'uuid';
import { RecordBoardFieldDefinition } from '@/object-record/record-board/types/RecordBoardFieldDefinition';
import { FieldMetadata } from '@/object-record/record-field/types/FieldMetadata';
import { ViewField } from '@/views/types/ViewField';
export const mapBoardFieldDefinitionsToViewFields = (
fieldsDefinitions: RecordBoardFieldDefinition<FieldMetadata>[],
): ViewField[] => {
return fieldsDefinitions.map(
(fieldDefinition): ViewField => ({
id: fieldDefinition.viewFieldId || v4(),
fieldMetadataId: fieldDefinition.fieldMetadataId,
size: 0,
position: fieldDefinition.position,
isVisible: fieldDefinition.isVisible ?? true,
definition: fieldDefinition,
}),
);
};

View File

@ -1,32 +0,0 @@
import { BoardFieldDefinition } from '@/object-record/record-board-deprecated/types/BoardFieldDefinition';
import { FieldMetadata } from '@/object-record/record-field/types/FieldMetadata';
import { isNonNullable } from '~/utils/isNonNullable';
import { ViewField } from '../types/ViewField';
export const mapViewFieldsToBoardFieldDefinitions = (
viewFields: ViewField[],
fieldsMetadata: BoardFieldDefinition<FieldMetadata>[],
): BoardFieldDefinition<FieldMetadata>[] => {
return viewFields
.map((viewField) => {
const correspondingFieldMetadata = fieldsMetadata.find(
({ fieldMetadataId }) => viewField.fieldMetadataId === fieldMetadataId,
);
return correspondingFieldMetadata
? {
fieldMetadataId: viewField.fieldMetadataId,
label: correspondingFieldMetadata.label,
metadata: correspondingFieldMetadata.metadata,
infoTooltipContent: correspondingFieldMetadata.infoTooltipContent,
iconName: correspondingFieldMetadata.iconName,
type: correspondingFieldMetadata.type,
position: viewField.position,
isVisible: viewField.isVisible,
viewFieldId: viewField.id,
}
: null;
})
.filter(isNonNullable);
};