diff --git a/front/src/modules/object-metadata/utils/formatFieldMetadataItemsAsFilterDefinitions.ts b/front/src/modules/object-metadata/utils/formatFieldMetadataItemsAsFilterDefinitions.ts index 8609f7417..2911fe623 100644 --- a/front/src/modules/object-metadata/utils/formatFieldMetadataItemsAsFilterDefinitions.ts +++ b/front/src/modules/object-metadata/utils/formatFieldMetadataItemsAsFilterDefinitions.ts @@ -46,6 +46,10 @@ const formatFieldMetadataItemAsFilterDefinition = ({ fieldMetadataId: field.id, label: field.label, iconName: field.icon ?? 'Icon123', + relationObjectMetadataNamePlural: + field.toRelationMetadata?.fromObjectMetadata.namePlural, + relationObjectMetadataNameSingular: + field.toRelationMetadata?.fromObjectMetadata.nameSingular, type: field.type === FieldMetadataType.DateTime ? 'DATE_TIME' diff --git a/front/src/modules/ui/object/object-filter-dropdown/components/ObjectFilterDropdownEntitySelect.tsx b/front/src/modules/ui/object/object-filter-dropdown/components/ObjectFilterDropdownEntitySelect.tsx index e01825539..c680c2175 100644 --- a/front/src/modules/ui/object/object-filter-dropdown/components/ObjectFilterDropdownEntitySelect.tsx +++ b/front/src/modules/ui/object/object-filter-dropdown/components/ObjectFilterDropdownEntitySelect.tsx @@ -14,8 +14,14 @@ export const ObjectFilterDropdownEntitySelect = () => { objectFilterDropdownSelectedEntityId, } = useFilter(); + const objectMetadataNameSingular = + filterDefinitionUsedInDropdown?.relationObjectMetadataNameSingular ?? ''; + + const objectMetadataNamePlural = + filterDefinitionUsedInDropdown?.relationObjectMetadataNamePlural ?? ''; + const { findManyQuery } = useObjectMetadataItem({ - objectNameSingular: 'company', + objectNameSingular: objectMetadataNameSingular, }); const useFindManyQuery = (options: any) => useQuery(findManyQuery, options); @@ -26,7 +32,8 @@ export const ObjectFilterDropdownEntitySelect = () => { queryHook: useFindManyQuery, filters: [ { - fieldNames: searchQuery?.computeFilterFields?.('company') ?? [], + fieldNames: + searchQuery?.computeFilterFields?.(objectMetadataNameSingular) ?? [], filter: objectFilterDropdownSearchInput, }, ], @@ -34,8 +41,9 @@ export const ObjectFilterDropdownEntitySelect = () => { selectedIds: objectFilterDropdownSelectedEntityId ? [objectFilterDropdownSelectedEntityId] : [], - mappingFunction: (record: any) => identifiersMapper?.(record, 'company'), - objectNamePlural: 'companies', + mappingFunction: (record: any) => + identifiersMapper?.(record, objectMetadataNameSingular), + objectNamePlural: objectMetadataNamePlural, }); if (filterDefinitionUsedInDropdown?.type !== 'RELATION') { diff --git a/front/src/modules/ui/object/object-filter-dropdown/types/FilterDefinition.ts b/front/src/modules/ui/object/object-filter-dropdown/types/FilterDefinition.ts index d2dedea78..63b517d3e 100644 --- a/front/src/modules/ui/object/object-filter-dropdown/types/FilterDefinition.ts +++ b/front/src/modules/ui/object/object-filter-dropdown/types/FilterDefinition.ts @@ -7,7 +7,8 @@ export type FilterDefinition = { label: string; iconName: string; type: FilterType; - entitySelectComponent?: JSX.Element; + relationObjectMetadataNamePlural?: string; + relationObjectMetadataNameSingular?: string; selectAllLabel?: string; SelectAllIcon?: IconComponent; }; diff --git a/front/src/modules/ui/object/object-sort-dropdown/components/ObjectSortDropdownButton.tsx b/front/src/modules/ui/object/object-sort-dropdown/components/ObjectSortDropdownButton.tsx index 5d1987bd4..beebcaa39 100644 --- a/front/src/modules/ui/object/object-sort-dropdown/components/ObjectSortDropdownButton.tsx +++ b/front/src/modules/ui/object/object-sort-dropdown/components/ObjectSortDropdownButton.tsx @@ -100,8 +100,9 @@ export const ObjectSortDropdownButton = ({ - {availableSortDefinitions.map( - (availableSortDefinition, index) => ( + {[...availableSortDefinitions] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((availableSortDefinition, index) => ( - ), - )} + ))} )} diff --git a/front/src/pages/tasks/tasks-filter-definitions.tsx b/front/src/pages/tasks/tasks-filter-definitions.tsx index 27379f175..c399460dd 100644 --- a/front/src/pages/tasks/tasks-filter-definitions.tsx +++ b/front/src/pages/tasks/tasks-filter-definitions.tsx @@ -1,7 +1,6 @@ import { Activity } from '@/activities/types/Activity'; import { IconUserCircle } from '@/ui/display/icon'; import { FilterDefinitionByEntity } from '@/ui/object/object-filter-dropdown/types/FilterDefinitionByEntity'; -import { FilterDropdownUserSearchSelect } from '@/users/components/FilterDropdownUserSearchSelect'; export const tasksFilterDefinitions: FilterDefinitionByEntity[] = [ { @@ -9,7 +8,8 @@ export const tasksFilterDefinitions: FilterDefinitionByEntity[] = [ label: 'Assignee', iconName: 'IconUser', type: 'RELATION', - entitySelectComponent: , + relationObjectMetadataNamePlural: 'workspaceMembers', + relationObjectMetadataNameSingular: 'workspaceMember', selectAllLabel: 'All assignees', SelectAllIcon: IconUserCircle, },