Relations many in table view (#5842)
Closes #5924. Adding the "many" side of relations in the table view, and fixing some issues (glitch in Multi record select, cache update after update). --------- Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
import { FilterDefinition } from '@/object-record/object-filter-dropdown/types/FilterDefinition';
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
import {
|
||||
FieldMetadataType,
|
||||
RelationDefinitionType,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
||||
|
||||
@ -10,6 +12,15 @@ export const formatFieldMetadataItemsAsFilterDefinitions = ({
|
||||
fields: Array<ObjectMetadataItem['fields'][0]>;
|
||||
}): FilterDefinition[] =>
|
||||
fields.reduce((acc, field) => {
|
||||
if (
|
||||
field.type === FieldMetadataType.Relation &&
|
||||
field.relationDefinition?.direction !==
|
||||
RelationDefinitionType.ManyToOne &&
|
||||
field.relationDefinition?.direction !== RelationDefinitionType.OneToOne
|
||||
) {
|
||||
return acc;
|
||||
}
|
||||
|
||||
if (
|
||||
![
|
||||
FieldMetadataType.DateTime,
|
||||
@ -33,12 +44,6 @@ export const formatFieldMetadataItemsAsFilterDefinitions = ({
|
||||
return acc;
|
||||
}
|
||||
|
||||
if (field.type === FieldMetadataType.Relation) {
|
||||
if (isDefined(field.fromRelationMetadata)) {
|
||||
return acc;
|
||||
}
|
||||
}
|
||||
|
||||
return [...acc, formatFieldMetadataItemAsFilterDefinition({ field })];
|
||||
}, [] as FilterDefinition[]);
|
||||
|
||||
@ -51,9 +56,9 @@ export const formatFieldMetadataItemAsFilterDefinition = ({
|
||||
label: field.label,
|
||||
iconName: field.icon ?? 'Icon123',
|
||||
relationObjectMetadataNamePlural:
|
||||
field.toRelationMetadata?.fromObjectMetadata.namePlural,
|
||||
field.relationDefinition?.targetObjectMetadata.namePlural,
|
||||
relationObjectMetadataNameSingular:
|
||||
field.toRelationMetadata?.fromObjectMetadata.nameSingular,
|
||||
field.relationDefinition?.targetObjectMetadata.nameSingular,
|
||||
type: getFilterTypeFromFieldType(field.type),
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user