Remove sync-metadata and IS_WORKSPACE_CREATION_V2_ENABLED feature flag (#16997)
# Introduction Followup of https://github.com/twentyhq/twenty/pull/17001#pullrequestreview-3638508738 close https://github.com/twentyhq/core-team-issues/issues/1910 We've completely decom the `sync-metadata` in production. We're now then removing its implementation in favor of the v2. ## TODO: - [x] Remove sync-metadata implem and commands - [x] Remove workspace decorators - [x] Type each deprecated field to deprecated on their workspaceEntity - [x] Remove the `workspace-sync-metadata` folder entirely - [x] remove workspace migration - [x] workspace migration removal migration - [x] remove the `v2` references from workspace manager file names - [x] remove the `v2` references from workspace manager modules - [ ] Double check impact on translation file path updates ## Note - Removed the gate logic - Remains some service v2 naming, serverless needs to be migrated on v2 fully - Removed workspaceMigration service app health consumption, making it always returning up ( no more down ) cc @FelixMalfait ( quite obsolete health check now, will require complete refactor once we introduce inter app dependency etc )
This commit is contained in:
-270
@@ -1,270 +0,0 @@
|
||||
import { isString } from '@sniptt/guards';
|
||||
import { type DataSource, type QueryRunner } from 'typeorm';
|
||||
|
||||
import { getFlatFieldsFromFlatObjectMetadata } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-flat-fields-for-flat-object-metadata.util';
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type';
|
||||
import { type FlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/types/flat-field-metadata.type';
|
||||
import { type FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ViewFieldEntity } from 'src/engine/metadata-modules/view-field/entities/view-field.entity';
|
||||
import { ViewFilterEntity } from 'src/engine/metadata-modules/view-filter/entities/view-filter.entity';
|
||||
import { ViewGroupEntity } from 'src/engine/metadata-modules/view-group/entities/view-group.entity';
|
||||
import { ViewEntity } from 'src/engine/metadata-modules/view/entities/view.entity';
|
||||
import { ViewKey } from 'src/engine/metadata-modules/view/enums/view-key.enum';
|
||||
import { ViewOpenRecordIn } from 'src/engine/metadata-modules/view/enums/view-open-record-in';
|
||||
import { ViewType } from 'src/engine/metadata-modules/view/enums/view-type.enum';
|
||||
import { ViewVisibility } from 'src/engine/metadata-modules/view/enums/view-visibility.enum';
|
||||
import { ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
import { type WorkspaceEntityManager } from 'src/engine/twenty-orm/entity-manager/workspace-entity-manager';
|
||||
import { shouldSeedWorkspaceFavorite } from 'src/engine/utils/should-seed-workspace-favorite';
|
||||
import { prefillWorkspaceFavorites } from 'src/engine/workspace-manager/standard-objects-prefill-data/prefill-workspace-favorites';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { calendarEventsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/calendar-events-all.view';
|
||||
import { companiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/companies-all.view';
|
||||
import { dashboardsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/dashboards-all.view';
|
||||
import { messageThreadsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/message-threads-all.view';
|
||||
import { messagesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/messages-all.view';
|
||||
import { notesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/notes-all.view';
|
||||
import { opportunitiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/opportunities-all.view';
|
||||
import { opportunitiesByStageView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/opportunity-by-stage.view';
|
||||
import { peopleAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/people-all.view';
|
||||
import { tasksAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-all.view';
|
||||
import { tasksAssignedToMeView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-assigned-to-me';
|
||||
import { tasksByStatusView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/tasks-by-status.view';
|
||||
import { timelineActivitiesAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/timeline-activities-all.view';
|
||||
import { workflowRunsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view';
|
||||
import { workflowVersionsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view';
|
||||
import { workflowsAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view';
|
||||
import { workspaceMembersAllView } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/workspace-members-all.view';
|
||||
|
||||
type PrefillCoreViewsArgs = {
|
||||
coreDataSource: DataSource;
|
||||
workspaceId: string;
|
||||
flatObjectMetadataMaps: FlatEntityMaps<FlatObjectMetadata>;
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>;
|
||||
featureFlags?: Record<string, boolean>;
|
||||
workspaceSchemaName: string;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
};
|
||||
|
||||
// This is a temporary function to build the object metadata items from the flat maps.
|
||||
// We should use the maps in the seeders instead.
|
||||
const buildObjectMetadataItemsFromFlatMaps = (
|
||||
flatObjectMetadataMaps: FlatEntityMaps<FlatObjectMetadata>,
|
||||
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>,
|
||||
): ObjectMetadataEntity[] => {
|
||||
return Object.values(flatObjectMetadataMaps.byId)
|
||||
.filter((flatObjectMetadata) => flatObjectMetadata !== undefined)
|
||||
.map((flatObjectMetadata) => {
|
||||
const fields = getFlatFieldsFromFlatObjectMetadata(
|
||||
flatObjectMetadata,
|
||||
flatFieldMetadataMaps,
|
||||
);
|
||||
|
||||
return {
|
||||
...flatObjectMetadata,
|
||||
fields,
|
||||
} as unknown as ObjectMetadataEntity;
|
||||
});
|
||||
};
|
||||
|
||||
export const prefillCoreViews = async ({
|
||||
coreDataSource,
|
||||
workspaceId,
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
workspaceSchemaName,
|
||||
twentyStandardFlatApplication,
|
||||
}: PrefillCoreViewsArgs): Promise<ViewEntity[]> => {
|
||||
const objectMetadataItems = buildObjectMetadataItemsFromFlatMaps(
|
||||
flatObjectMetadataMaps,
|
||||
flatFieldMetadataMaps,
|
||||
);
|
||||
const views = [
|
||||
companiesAllView,
|
||||
peopleAllView,
|
||||
opportunitiesAllView,
|
||||
opportunitiesByStageView,
|
||||
notesAllView,
|
||||
tasksAllView,
|
||||
tasksAssignedToMeView,
|
||||
tasksByStatusView,
|
||||
workflowsAllView,
|
||||
workflowVersionsAllView,
|
||||
workflowRunsAllView,
|
||||
dashboardsAllView,
|
||||
workspaceMembersAllView,
|
||||
messagesAllView,
|
||||
messageThreadsAllView,
|
||||
calendarEventsAllView,
|
||||
timelineActivitiesAllView,
|
||||
].map((seeder) =>
|
||||
seeder({
|
||||
objectMetadataItems,
|
||||
useCoreNaming: true,
|
||||
twentyStandardFlatApplication,
|
||||
}),
|
||||
);
|
||||
|
||||
const queryRunner = coreDataSource.createQueryRunner();
|
||||
|
||||
await queryRunner.connect();
|
||||
|
||||
try {
|
||||
await queryRunner.startTransaction();
|
||||
|
||||
const createdViews = await createCoreViews(
|
||||
queryRunner,
|
||||
workspaceId,
|
||||
views,
|
||||
twentyStandardFlatApplication,
|
||||
);
|
||||
|
||||
await prefillWorkspaceFavorites(
|
||||
createdViews
|
||||
.filter(
|
||||
(view) =>
|
||||
view.key === 'INDEX' &&
|
||||
shouldSeedWorkspaceFavorite(
|
||||
view.objectMetadataId,
|
||||
objectMetadataItems,
|
||||
),
|
||||
)
|
||||
.map((view) => view.id),
|
||||
queryRunner.manager as WorkspaceEntityManager,
|
||||
workspaceSchemaName,
|
||||
);
|
||||
|
||||
await queryRunner.commitTransaction();
|
||||
|
||||
return createdViews;
|
||||
} catch (error) {
|
||||
if (queryRunner.isTransactionActive) {
|
||||
try {
|
||||
await queryRunner.rollbackTransaction();
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.trace(`Failed to rollback transaction: ${error.message}`);
|
||||
}
|
||||
}
|
||||
throw error;
|
||||
} finally {
|
||||
await queryRunner.release();
|
||||
}
|
||||
};
|
||||
|
||||
export const createCoreViews = async (
|
||||
queryRunner: QueryRunner,
|
||||
workspaceId: string,
|
||||
viewDefinitions: ViewDefinition[],
|
||||
twentyStandardFlatApplication: FlatApplication,
|
||||
): Promise<ViewEntity[]> => {
|
||||
const coreViews: Partial<ViewEntity>[] = viewDefinitions.map(
|
||||
({
|
||||
id,
|
||||
name,
|
||||
objectMetadataId,
|
||||
type,
|
||||
key,
|
||||
position,
|
||||
icon,
|
||||
isCustom,
|
||||
openRecordIn,
|
||||
mainGroupByFieldMetadataId,
|
||||
kanbanAggregateOperation,
|
||||
kanbanAggregateOperationFieldMetadataId,
|
||||
applicationId,
|
||||
universalIdentifier,
|
||||
}) => ({
|
||||
id,
|
||||
name: isString(name) ? name : name.message || '',
|
||||
objectMetadataId,
|
||||
type: type === 'kanban' ? ViewType.KANBAN : ViewType.TABLE,
|
||||
key: key === ViewKey.INDEX ? ViewKey.INDEX : null,
|
||||
position,
|
||||
icon,
|
||||
isCompact: false,
|
||||
isCustom: isCustom ?? false,
|
||||
openRecordIn:
|
||||
openRecordIn === ViewOpenRecordInType.RECORD_PAGE
|
||||
? ViewOpenRecordIn.RECORD_PAGE
|
||||
: ViewOpenRecordIn.SIDE_PANEL,
|
||||
kanbanAggregateOperation,
|
||||
kanbanAggregateOperationFieldMetadataId,
|
||||
mainGroupByFieldMetadataId,
|
||||
workspaceId,
|
||||
anyFieldFilterValue: null,
|
||||
visibility: ViewVisibility.WORKSPACE,
|
||||
applicationId,
|
||||
universalIdentifier,
|
||||
}),
|
||||
);
|
||||
|
||||
const viewRepository = queryRunner.manager.getRepository(ViewEntity);
|
||||
const createdViews = await viewRepository.save(coreViews);
|
||||
|
||||
for (const viewDefinition of viewDefinitions) {
|
||||
if (viewDefinition.fields && viewDefinition.fields.length > 0) {
|
||||
const coreViewFields: Partial<ViewFieldEntity>[] =
|
||||
viewDefinition.fields.map((field) => ({
|
||||
fieldMetadataId: field.fieldMetadataId,
|
||||
position: field.position,
|
||||
isVisible: field.isVisible,
|
||||
size: field.size,
|
||||
viewId: viewDefinition.id,
|
||||
workspaceId,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
universalIdentifier: field.universalIdentifier,
|
||||
}));
|
||||
|
||||
const viewFieldRepository =
|
||||
queryRunner.manager.getRepository(ViewFieldEntity);
|
||||
|
||||
await viewFieldRepository.save(coreViewFields);
|
||||
}
|
||||
|
||||
if (viewDefinition.filters && viewDefinition.filters.length > 0) {
|
||||
const coreViewFilters: Partial<ViewFilterEntity>[] =
|
||||
viewDefinition.filters.map((filter) => ({
|
||||
fieldMetadataId: filter.fieldMetadataId,
|
||||
viewId: viewDefinition.id,
|
||||
operand: filter.operand,
|
||||
value: filter.value,
|
||||
workspaceId,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
universalIdentifier: filter.universalIdentifier,
|
||||
}));
|
||||
|
||||
const viewFilterRepository =
|
||||
queryRunner.manager.getRepository(ViewFilterEntity);
|
||||
|
||||
await viewFilterRepository.save(coreViewFilters);
|
||||
}
|
||||
|
||||
if (
|
||||
'groups' in viewDefinition &&
|
||||
viewDefinition.groups &&
|
||||
viewDefinition.groups.length > 0
|
||||
) {
|
||||
const coreViewGroups: Partial<ViewGroupEntity>[] =
|
||||
viewDefinition.groups.map((group) => ({
|
||||
fieldMetadataId: group.fieldMetadataId,
|
||||
isVisible: group.isVisible,
|
||||
fieldValue: group.fieldValue,
|
||||
position: group.position,
|
||||
viewId: viewDefinition.id,
|
||||
workspaceId,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
universalIdentifier: group.universalIdentifier,
|
||||
}));
|
||||
|
||||
const viewGroupRepository =
|
||||
queryRunner.manager.getRepository(ViewGroupEntity);
|
||||
|
||||
await viewGroupRepository.save(coreViewGroups);
|
||||
}
|
||||
}
|
||||
|
||||
return createdViews;
|
||||
};
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
import { type MessageDescriptor } from '@lingui/core';
|
||||
import { type ViewFilterOperand } from 'twenty-shared/types';
|
||||
|
||||
import { type AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { type ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
|
||||
export interface ViewDefinition {
|
||||
id?: string;
|
||||
name: string | MessageDescriptor;
|
||||
objectMetadataId: string;
|
||||
type: string;
|
||||
key: string | null;
|
||||
position: number;
|
||||
applicationId: string;
|
||||
universalIdentifier: string;
|
||||
icon?: string;
|
||||
isCustom?: boolean;
|
||||
openRecordIn?: ViewOpenRecordInType;
|
||||
kanbanAggregateOperation?: AggregateOperations;
|
||||
kanbanAggregateOperationFieldMetadataId?: string;
|
||||
mainGroupByFieldMetadataId?: string;
|
||||
calendarFieldMetadataId?: string;
|
||||
calendarLayout?: string;
|
||||
fields?: {
|
||||
universalIdentifier: string;
|
||||
fieldMetadataId: string;
|
||||
position: number;
|
||||
isVisible: boolean;
|
||||
size: number;
|
||||
aggregateOperation?: AggregateOperations;
|
||||
}[];
|
||||
filters?: {
|
||||
universalIdentifier: string;
|
||||
fieldMetadataId: string;
|
||||
displayValue: string;
|
||||
operand: ViewFilterOperand;
|
||||
value: string;
|
||||
}[];
|
||||
groups?: {
|
||||
universalIdentifier: string;
|
||||
fieldMetadataId: string;
|
||||
isVisible: boolean;
|
||||
fieldValue: string;
|
||||
position: number;
|
||||
}[];
|
||||
}
|
||||
-160
@@ -1,160 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { DEFAULT_VIEW_FIELD_SIZE } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/constants/DEFAULT_VIEW_FIELD_SIZE';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
CALENDAR_EVENT_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const calendarEventsAllView = ({
|
||||
objectMetadataItems,
|
||||
twentyStandardFlatApplication,
|
||||
useCoreNaming,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const calendarEventObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.calendarEvent,
|
||||
);
|
||||
|
||||
if (!calendarEventObjectMetadata) {
|
||||
throw new Error('CalendarEvent object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Calendar Events',
|
||||
objectMetadataId: calendarEventObjectMetadata.id ?? '',
|
||||
type: 'calendar',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconCalendar',
|
||||
calendarFieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === CALENDAR_EVENT_STANDARD_FIELD_IDS.startsAt,
|
||||
)?.id ?? '',
|
||||
calendarLayout: 'MONTH',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === CALENDAR_EVENT_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: DEFAULT_VIEW_FIELD_SIZE,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.title.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === CALENDAR_EVENT_STANDARD_FIELD_IDS.startsAt,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.startsAt.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === CALENDAR_EVENT_STANDARD_FIELD_IDS.endsAt,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.endsAt.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === CALENDAR_EVENT_STANDARD_FIELD_IDS.isFullDay,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 100,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.isFullDay.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === CALENDAR_EVENT_STANDARD_FIELD_IDS.location,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.location.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
CALENDAR_EVENT_STANDARD_FIELD_IDS.conferenceLink,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.conferenceLink.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === CALENDAR_EVENT_STANDARD_FIELD_IDS.isCanceled,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 100,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.isCanceled.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
calendarEventObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.calendarEvent.views.allCalendarEvents.viewFields
|
||||
.createdAt.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { DEFAULT_VIEW_FIELD_SIZE } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/constants/DEFAULT_VIEW_FIELD_SIZE';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
COMPANY_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const companiesAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const companyObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.company,
|
||||
);
|
||||
|
||||
if (!companyObjectMetadata) {
|
||||
throw new Error('Company object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.company.views.allCompanies.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Companies',
|
||||
objectMetadataId: companyObjectMetadata.id ?? '',
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) => field.standardId === COMPANY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: DEFAULT_VIEW_FIELD_SIZE,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.name
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.domainName,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 100,
|
||||
aggregateOperation: AggregateOperations.COUNT,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.domainName
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.accountOwner,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.accountOwner
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.employees,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
aggregateOperation: AggregateOperations.MAX,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.employees
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === COMPANY_STANDARD_FIELD_IDS.linkedinLink,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 170,
|
||||
aggregateOperation: AggregateOperations.PERCENTAGE_EMPTY,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.linkedinLink
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
companyObjectMetadata.fields.find(
|
||||
(field) => field.standardId === COMPANY_STANDARD_FIELD_IDS.address,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 170,
|
||||
aggregateOperation: AggregateOperations.COUNT_NOT_EMPTY,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.company.views.allCompanies.viewFields.address
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-1
@@ -1 +0,0 @@
|
||||
export const DEFAULT_VIEW_FIELD_SIZE = 180;
|
||||
-101
@@ -1,101 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
DASHBOARD_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const dashboardsAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const dashboardObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.dashboard,
|
||||
);
|
||||
|
||||
if (!dashboardObjectMetadata) {
|
||||
throw new Error('Dashboard object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.dashboard.views.allDashboards.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Dashboards',
|
||||
objectMetadataId: dashboardObjectMetadata.id ?? '',
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconLayoutDashboard',
|
||||
openRecordIn: ViewOpenRecordInType.RECORD_PAGE,
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
dashboardObjectMetadata.fields.find(
|
||||
(field) => field.standardId === DASHBOARD_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.dashboard.views.allDashboards.viewFields.title
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
dashboardObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === DASHBOARD_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.dashboard.views.allDashboards.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
dashboardObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.dashboard.views.allDashboards.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
dashboardObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.dashboard.views.allDashboards.viewFields.updatedAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { DEFAULT_VIEW_FIELD_SIZE } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/constants/DEFAULT_VIEW_FIELD_SIZE';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
MESSAGE_THREAD_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const messageThreadsAllView = ({
|
||||
objectMetadataItems,
|
||||
twentyStandardFlatApplication,
|
||||
useCoreNaming,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const messageThreadObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.messageThread,
|
||||
);
|
||||
|
||||
if (!messageThreadObjectMetadata) {
|
||||
throw new Error('MessageThread object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.messageThread.views.allMessageThreads.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Message Threads',
|
||||
objectMetadataId: messageThreadObjectMetadata.id ?? '',
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageThreadObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === MESSAGE_THREAD_STANDARD_FIELD_IDS.messages,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: DEFAULT_VIEW_FIELD_SIZE,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.messageThread.views.allMessageThreads.viewFields
|
||||
.messages.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageThreadObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.messageThread.views.allMessageThreads.viewFields
|
||||
.createdAt.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-139
@@ -1,139 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { DEFAULT_VIEW_FIELD_SIZE } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/constants/DEFAULT_VIEW_FIELD_SIZE';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
MESSAGE_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const messagesAllView = ({
|
||||
objectMetadataItems,
|
||||
twentyStandardFlatApplication,
|
||||
useCoreNaming,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const messageObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.message,
|
||||
);
|
||||
|
||||
if (!messageObjectMetadata) {
|
||||
throw new Error('Message object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.message.views.allMessages.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Messages',
|
||||
objectMetadataId: messageObjectMetadata.id ?? '',
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageObjectMetadata.fields.find(
|
||||
(field) => field.standardId === MESSAGE_STANDARD_FIELD_IDS.subject,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: DEFAULT_VIEW_FIELD_SIZE,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.message.views.allMessages.viewFields.subject
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === MESSAGE_STANDARD_FIELD_IDS.messageThread,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.message.views.allMessages.viewFields.messageThread
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
MESSAGE_STANDARD_FIELD_IDS.messageParticipants,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.message.views.allMessages.viewFields
|
||||
.messageParticipants.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === MESSAGE_STANDARD_FIELD_IDS.receivedAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.message.views.allMessages.viewFields.receivedAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === MESSAGE_STANDARD_FIELD_IDS.headerMessageId,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.message.views.allMessages.viewFields.headerMessageId
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageObjectMetadata.fields.find(
|
||||
(field) => field.standardId === MESSAGE_STANDARD_FIELD_IDS.text,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.message.views.allMessages.viewFields.text
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
messageObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.message.views.allMessages.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-119
@@ -1,119 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
NOTE_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const notesAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const noteObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.note,
|
||||
);
|
||||
|
||||
if (!noteObjectMetadata) {
|
||||
throw new Error('Note object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.note.views.allNotes.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Notes',
|
||||
objectMetadataId: noteObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconNotes',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.note.views.allNotes.viewFields.title
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.noteTargets,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.note.views.allNotes.viewFields.noteTargets
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.bodyV2,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.note.views.allNotes.viewFields.bodyV2
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) => field.standardId === NOTE_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.note.views.allNotes.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
noteObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.note.views.allNotes.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
/*
|
||||
TODO: Add later, since we don't have real-time it probably doesn't work well?
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataMap[STANDARD_OBJECT_IDS.note].fields[.updatedAt
|
||||
],
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210},
|
||||
*/
|
||||
],
|
||||
};
|
||||
};
|
||||
-126
@@ -1,126 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const opportunitiesAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const opportunityObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.opportunity,
|
||||
);
|
||||
|
||||
if (!opportunityObjectMetadata) {
|
||||
throw new Error('Opportunity object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.opportunity.views.allOpportunities.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Opportunities',
|
||||
objectMetadataId: opportunityObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.allOpportunities.viewFields.name
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
aggregateOperation: AggregateOperations.AVG,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.allOpportunities.viewFields.amount
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.allOpportunities.viewFields
|
||||
.createdBy.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.closeDate,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
aggregateOperation: AggregateOperations.MIN,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.allOpportunities.viewFields
|
||||
.closeDate.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.company,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.allOpportunities.viewFields.company
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.allOpportunities.viewFields
|
||||
.pointOfContact.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-202
@@ -1,202 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const opportunitiesByStageView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const opportunityObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.opportunity,
|
||||
);
|
||||
|
||||
if (!opportunityObjectMetadata) {
|
||||
throw new Error('Opportunity object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.universalIdentifier;
|
||||
|
||||
const stageFieldMetadataId =
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '';
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`By Stage` : 'By Stage',
|
||||
objectMetadataId: opportunityObjectMetadata.id,
|
||||
type: 'kanban',
|
||||
key: null,
|
||||
position: 2,
|
||||
icon: 'IconLayoutKanban',
|
||||
kanbanAggregateOperation: AggregateOperations.SUM,
|
||||
kanbanAggregateOperationFieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount,
|
||||
)?.id ?? '',
|
||||
filters: [],
|
||||
mainGroupByFieldMetadataId: stageFieldMetadataId,
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) => field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewFields.name
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.amount,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewFields.amount
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.closeDate,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewFields.closeDate
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.company,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewFields.company
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewFields.pointOfContact
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
groups: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'NEW',
|
||||
position: 0,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewGroups!.new
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'SCREENING',
|
||||
position: 1,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewGroups!.screening
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'MEETING',
|
||||
position: 2,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewGroups!.meeting
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'PROPOSAL',
|
||||
position: 3,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewGroups!.proposal
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
opportunityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === OPPORTUNITY_STANDARD_FIELD_IDS.stage,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'CUSTOMER',
|
||||
position: 4,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.opportunity.views.byStage.viewGroups!.customer
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-174
@@ -1,174 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { AggregateOperations } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant';
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
PERSON_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const peopleAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const personObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.person,
|
||||
);
|
||||
|
||||
if (!personObjectMetadata) {
|
||||
throw new Error('Person object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.person.views.allPeople.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All People',
|
||||
objectMetadataId: personObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.name
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.emails,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
aggregateOperation: AggregateOperations.COUNT_UNIQUE_VALUES,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.emails
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.company,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.company
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.phones,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
aggregateOperation: AggregateOperations.PERCENTAGE_EMPTY,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.phones
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
aggregateOperation: AggregateOperations.MIN,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.city,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.city
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.jobTitle,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.jobTitle
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === PERSON_STANDARD_FIELD_IDS.linkedinLink,
|
||||
)?.id ?? '',
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.linkedinLink
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
personObjectMetadata.fields.find(
|
||||
(field) => field.standardId === PERSON_STANDARD_FIELD_IDS.xLink,
|
||||
)?.id ?? '',
|
||||
position: 9,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.person.views.allPeople.viewFields.xLink
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-164
@@ -1,164 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
TASK_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const tasksAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const taskObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.task,
|
||||
);
|
||||
|
||||
if (!taskObjectMetadata) {
|
||||
throw new Error('Task object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.task.views.allTasks.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Tasks',
|
||||
objectMetadataId: taskObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
filters: [] /* [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.type
|
||||
],
|
||||
displayValue: 'Task',
|
||||
operand: 'is',
|
||||
value: '["TASK"]'},
|
||||
],*/,
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.title
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.status
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.taskTargets,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.taskTargets
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.dueAt,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.dueAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.assignee
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.bodyV2,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.bodyV2
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.allTasks.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
/*
|
||||
TODO: Add later, since we don't have real-time it probably doesn't work well?
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataMap[STANDARD_OBJECT_IDS.task].fields[.updatedAt
|
||||
],
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210},
|
||||
*/
|
||||
],
|
||||
};
|
||||
};
|
||||
-212
@@ -1,212 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { ViewFilterOperand } from 'twenty-shared/types';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
TASK_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const tasksAssignedToMeView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const taskObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.task,
|
||||
);
|
||||
|
||||
if (!taskObjectMetadata) {
|
||||
throw new Error('Task object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`Assigned to Me` : 'Assigned to Me',
|
||||
objectMetadataId: taskObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: null,
|
||||
position: 2,
|
||||
icon: 'IconUserCircle',
|
||||
mainGroupByFieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
filters: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
displayValue: 'Me',
|
||||
operand: ViewFilterOperand.IS,
|
||||
value: JSON.stringify({
|
||||
isCurrentWorkspaceMemberSelected: true,
|
||||
selectedRecordIds: [],
|
||||
}),
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFilters!.assigneeIsMe
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFields.title
|
||||
.universalIdentifier,
|
||||
},
|
||||
/*{
|
||||
fieldMetadataId:
|
||||
objectMetadataStandardIdToIdMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.status
|
||||
],
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150},*/
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.taskTargets,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFields.taskTargets
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.dueAt,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFields.dueAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFields.assignee
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.bodyV2,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFields.bodyV2
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
groups: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'TODO',
|
||||
position: 0,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewGroups!.todo
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'IN_PROGRESS',
|
||||
position: 1,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewGroups!.inProgress
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'DONE',
|
||||
position: 2,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewGroups!.done
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: '',
|
||||
position: 3,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.assignedToMe.viewGroups!.empty
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-170
@@ -1,170 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
TASK_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const tasksByStatusView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const taskObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.task,
|
||||
);
|
||||
|
||||
if (!taskObjectMetadata) {
|
||||
throw new Error('Task object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.task.views.byStatus.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`By Status` : 'By Status',
|
||||
objectMetadataId: taskObjectMetadata.id,
|
||||
type: 'kanban',
|
||||
key: null,
|
||||
position: 1,
|
||||
icon: 'IconLayoutKanban',
|
||||
mainGroupByFieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
filters: [] /* [
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataMap[STANDARD_OBJECT_IDS.task].fields[
|
||||
TASK_STANDARD_FIELD_IDS.type
|
||||
],
|
||||
displayValue: 'Task',
|
||||
operand: 'is',
|
||||
value: '["TASK"]'},
|
||||
],*/,
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.title,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewFields.title
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewFields.status
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.dueAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewFields.dueAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.assignee,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewFields.assignee
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewFields.createdAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
/*
|
||||
TODO: Add later, since we don't have real-time it probably doesn't work well?
|
||||
{
|
||||
fieldMetadataId:
|
||||
objectMetadataMap[STANDARD_OBJECT_IDS.task].fields[.updatedAt
|
||||
],
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210},
|
||||
*/
|
||||
],
|
||||
groups: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'TODO',
|
||||
position: 0,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewGroups!.todo
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'IN_PROGRESS',
|
||||
position: 1,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewGroups!.inProgress
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
taskObjectMetadata.fields.find(
|
||||
(field) => field.standardId === TASK_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
isVisible: true,
|
||||
fieldValue: 'DONE',
|
||||
position: 2,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.task.views.byStatus.viewGroups!.done
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { DEFAULT_VIEW_FIELD_SIZE } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/constants/DEFAULT_VIEW_FIELD_SIZE';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import { TIMELINE_ACTIVITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const timelineActivitiesAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const timelineActivityObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.timelineActivity,
|
||||
);
|
||||
|
||||
if (!timelineActivityObjectMetadata) {
|
||||
throw new Error('TimelineActivity object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming
|
||||
? msg`All {objectLabelPlural}`
|
||||
: 'All Timeline Activities',
|
||||
objectMetadataId: timelineActivityObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
openRecordIn: ViewOpenRecordInType.RECORD_PAGE,
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: DEFAULT_VIEW_FIELD_SIZE,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.name.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.happensAt,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.happensAt.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.properties,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.properties.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.workspaceMember,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.workspaceMember.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
timelineActivityObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.linkedRecordCachedName,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 200,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.timelineActivity.views.allTimelineActivities
|
||||
.viewFields.linkedRecordCachedName.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-126
@@ -1,126 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import { WORKFLOW_RUN_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const workflowRunsAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const workflowRunObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.workflowRun,
|
||||
);
|
||||
|
||||
if (!workflowRunObjectMetadata) {
|
||||
throw new Error('Workflow run object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.workflowRun.views.allWorkflowRuns.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Workflow Runs',
|
||||
objectMetadataId: workflowRunObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconHistoryToggle',
|
||||
openRecordIn: ViewOpenRecordInType.RECORD_PAGE,
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowRun.views.allWorkflowRuns.viewFields.name
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.workflow,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowRun.views.allWorkflowRuns.viewFields.workflow
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowRun.views.allWorkflowRuns.viewFields.status
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.startedAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowRun.views.allWorkflowRuns.viewFields
|
||||
.startedAt.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_RUN_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowRun.views.allWorkflowRuns.viewFields
|
||||
.createdBy.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowRunObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
WORKFLOW_RUN_STANDARD_FIELD_IDS.workflowVersion,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowRun.views.allWorkflowRuns.viewFields
|
||||
.workflowVersion.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-118
@@ -1,118 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
WORKFLOW_VERSION_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const workflowVersionsAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const workflowVersionObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.workflowVersion,
|
||||
);
|
||||
|
||||
if (!workflowVersionObjectMetadata) {
|
||||
throw new Error('Workflow version object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.workflowVersion.views.allWorkflowVersions
|
||||
.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming
|
||||
? msg`All {objectLabelPlural}`
|
||||
: 'All Workflow Versions',
|
||||
objectMetadataId: workflowVersionObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconVersions',
|
||||
openRecordIn: ViewOpenRecordInType.RECORD_PAGE,
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 210,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowVersion.views.allWorkflowVersions.viewFields
|
||||
.name.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.workflow,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowVersion.views.allWorkflowVersions.viewFields
|
||||
.workflow.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.status,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowVersion.views.allWorkflowVersions.viewFields
|
||||
.status.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowVersion.views.allWorkflowVersions.viewFields
|
||||
.updatedAt.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowVersionObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_VERSION_STANDARD_FIELD_IDS.runs,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: false,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflowVersion.views.allWorkflowVersions.viewFields
|
||||
.runs.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-126
@@ -1,126 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { ViewOpenRecordInType } from 'src/engine/metadata-modules/view/types/view-open-record-in-type.type';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
WORKFLOW_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const workflowsAllView = ({
|
||||
objectMetadataItems,
|
||||
useCoreNaming = false,
|
||||
twentyStandardFlatApplication,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const workflowObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.workflow,
|
||||
);
|
||||
|
||||
if (!workflowObjectMetadata) {
|
||||
throw new Error('Workflow object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.workflow.views.allWorkflows.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming ? msg`All {objectLabelPlural}` : 'All Workflows',
|
||||
objectMetadataId: workflowObjectMetadata.id,
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconSettingsAutomation',
|
||||
openRecordIn: ViewOpenRecordInType.RECORD_PAGE,
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) => field.standardId === WORKFLOW_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflow.views.allWorkflows.viewFields.name
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_STANDARD_FIELD_IDS.statuses,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflow.views.allWorkflows.viewFields.statuses
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflow.views.allWorkflows.viewFields.updatedAt
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_STANDARD_FIELD_IDS.createdBy,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflow.views.allWorkflows.viewFields.createdBy
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKFLOW_STANDARD_FIELD_IDS.versions,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflow.views.allWorkflows.viewFields.versions
|
||||
.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workflowObjectMetadata.fields.find(
|
||||
(field) => field.standardId === WORKFLOW_STANDARD_FIELD_IDS.runs,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: false,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workflow.views.allWorkflows.viewFields.runs
|
||||
.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
-174
@@ -1,174 +0,0 @@
|
||||
import { msg } from '@lingui/core/macro';
|
||||
import { STANDARD_OBJECT_IDS } from 'twenty-shared/metadata';
|
||||
import { v4 } from 'uuid';
|
||||
|
||||
import { type FlatApplication } from 'src/engine/core-modules/application/types/flat-application.type';
|
||||
import { type ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
|
||||
import { type ViewDefinition } from 'src/engine/workspace-manager/standard-objects-prefill-data/types/view-definition.interface';
|
||||
import { DEFAULT_VIEW_FIELD_SIZE } from 'src/engine/workspace-manager/standard-objects-prefill-data/views/constants/DEFAULT_VIEW_FIELD_SIZE';
|
||||
import { STANDARD_OBJECTS } from 'src/engine/workspace-manager/twenty-standard-application/constants/standard-object.constant';
|
||||
import {
|
||||
BASE_OBJECT_STANDARD_FIELD_IDS,
|
||||
WORKSPACE_MEMBER_STANDARD_FIELD_IDS,
|
||||
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
|
||||
|
||||
export const workspaceMembersAllView = ({
|
||||
objectMetadataItems,
|
||||
twentyStandardFlatApplication,
|
||||
useCoreNaming,
|
||||
}: {
|
||||
objectMetadataItems: ObjectMetadataEntity[];
|
||||
useCoreNaming?: boolean;
|
||||
twentyStandardFlatApplication: FlatApplication;
|
||||
}): ViewDefinition => {
|
||||
const workspaceMemberObjectMetadata = objectMetadataItems.find(
|
||||
(object) => object.standardId === STANDARD_OBJECT_IDS.workspaceMember,
|
||||
);
|
||||
|
||||
if (!workspaceMemberObjectMetadata) {
|
||||
throw new Error('WorkspaceMember object metadata not found');
|
||||
}
|
||||
|
||||
const viewUniversalIdentifier =
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers
|
||||
.universalIdentifier;
|
||||
|
||||
return {
|
||||
id: v4(),
|
||||
universalIdentifier: viewUniversalIdentifier,
|
||||
applicationId: twentyStandardFlatApplication.id,
|
||||
name: useCoreNaming
|
||||
? msg`All {objectLabelPlural}`
|
||||
: 'All Workspace Members',
|
||||
objectMetadataId: workspaceMemberObjectMetadata.id ?? '',
|
||||
type: 'table',
|
||||
key: 'INDEX',
|
||||
position: 0,
|
||||
icon: 'IconList',
|
||||
filters: [],
|
||||
fields: [
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKSPACE_MEMBER_STANDARD_FIELD_IDS.name,
|
||||
)?.id ?? '',
|
||||
position: 0,
|
||||
isVisible: true,
|
||||
size: DEFAULT_VIEW_FIELD_SIZE,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.name.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
WORKSPACE_MEMBER_STANDARD_FIELD_IDS.userEmail,
|
||||
)?.id ?? '',
|
||||
position: 1,
|
||||
isVisible: true,
|
||||
size: 180,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.userEmail.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
WORKSPACE_MEMBER_STANDARD_FIELD_IDS.avatarUrl,
|
||||
)?.id ?? '',
|
||||
position: 2,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.avatarUrl.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
WORKSPACE_MEMBER_STANDARD_FIELD_IDS.colorScheme,
|
||||
)?.id ?? '',
|
||||
position: 3,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.colorScheme.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKSPACE_MEMBER_STANDARD_FIELD_IDS.locale,
|
||||
)?.id ?? '',
|
||||
position: 4,
|
||||
isVisible: true,
|
||||
size: 120,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.locale.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === WORKSPACE_MEMBER_STANDARD_FIELD_IDS.timeZone,
|
||||
)?.id ?? '',
|
||||
position: 5,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.timeZone.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
WORKSPACE_MEMBER_STANDARD_FIELD_IDS.dateFormat,
|
||||
)?.id ?? '',
|
||||
position: 6,
|
||||
isVisible: true,
|
||||
size: 120,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.dateFormat.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId ===
|
||||
WORKSPACE_MEMBER_STANDARD_FIELD_IDS.timeFormat,
|
||||
)?.id ?? '',
|
||||
position: 7,
|
||||
isVisible: true,
|
||||
size: 120,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.timeFormat.universalIdentifier,
|
||||
},
|
||||
{
|
||||
fieldMetadataId:
|
||||
workspaceMemberObjectMetadata.fields.find(
|
||||
(field) =>
|
||||
field.standardId === BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
|
||||
)?.id ?? '',
|
||||
position: 8,
|
||||
isVisible: true,
|
||||
size: 150,
|
||||
universalIdentifier:
|
||||
STANDARD_OBJECTS.workspaceMember.views.allWorkspaceMembers.viewFields
|
||||
.createdAt.universalIdentifier,
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user