From 4f99b8eea10a0cdd9be4f48f50c351c51f6ce47d Mon Sep 17 00:00:00 2001 From: martmull Date: Fri, 15 Nov 2024 11:13:36 +0100 Subject: [PATCH] 8495 workflow display relevant columns in workflow related tables (#8502) ## After ### Workflows ![image](https://github.com/user-attachments/assets/535e0ff5-1276-41b9-aa52-d66150cd85ae) ### WorkflowRuns ![image](https://github.com/user-attachments/assets/8a7e076b-53ec-4b72-97d8-41bd77ed59ac) ### WorkflowVersions ![image](https://github.com/user-attachments/assets/7d2566b2-e6ea-4a3a-8e88-0f6850203219) ## Change Created By into Executed By in workflowRuns ![image](https://github.com/user-attachments/assets/b90b7a07-a4bc-4bd2-b7f5-ab7d2ae6ee45) --- .../components/RecordTableCellsVisible.tsx | 2 +- ...RightDrawerWorkflowSelectActionContent.tsx | 1 + ...DrawerWorkflowSelectTriggerTypeContent.tsx | 1 + .../__stories__/RecordIndexPage.stories.tsx | 2 +- .../views/workflow-runs-all.view.ts | 26 +++++++++-- .../views/workflow-versions-all.view.ts | 20 +++++++-- .../views/workflows-all.view.ts | 45 +++++++++++++++++-- .../constants/standard-field-ids.ts | 1 + .../workflow-run.workspace-entity.ts | 4 +- .../workflow.workspace-entity.ts | 17 +++++++ 10 files changed, 104 insertions(+), 15 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableCellsVisible.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableCellsVisible.tsx index b41e9e44b..1271a056e 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableCellsVisible.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-row/components/RecordTableCellsVisible.tsx @@ -42,7 +42,7 @@ export const RecordTableCellsVisible = () => { diff --git a/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectActionContent.tsx b/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectActionContent.tsx index 0d13a0b39..499c54c51 100644 --- a/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectActionContent.tsx +++ b/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectActionContent.tsx @@ -27,6 +27,7 @@ export const RightDrawerWorkflowSelectActionContent = ({ {ACTIONS.map((action) => ( { diff --git a/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectTriggerTypeContent.tsx b/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectTriggerTypeContent.tsx index abe47dd1e..2667195f2 100644 --- a/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectTriggerTypeContent.tsx +++ b/packages/twenty-front/src/modules/workflow/components/RightDrawerWorkflowSelectTriggerTypeContent.tsx @@ -37,6 +37,7 @@ export const RightDrawerWorkflowSelectTriggerTypeContent = ({ {TRIGGER_TYPES.map((action) => ( { diff --git a/packages/twenty-front/src/pages/object-record/__stories__/RecordIndexPage.stories.tsx b/packages/twenty-front/src/pages/object-record/__stories__/RecordIndexPage.stories.tsx index 5101e66f2..ae762a686 100644 --- a/packages/twenty-front/src/pages/object-record/__stories__/RecordIndexPage.stories.tsx +++ b/packages/twenty-front/src/pages/object-record/__stories__/RecordIndexPage.stories.tsx @@ -32,7 +32,7 @@ export const Default: Story = { play: async ({ canvasElement }) => { const canvas = within(canvasElement); - await canvas.findByText('People', undefined, { timeout: 10000 }); + await canvas.findByText('Companies', undefined, { timeout: 3000 }); await canvas.findByText('Linkedin'); }, }; diff --git a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view.ts index d7bc3775d..dbbeac758 100644 --- a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-runs-all.view.ts @@ -22,12 +22,12 @@ export const workflowRunsAllView = ( ], position: 0, isVisible: true, - size: 210, + size: 150, }, { fieldMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflowRun].fields[ - WORKFLOW_RUN_STANDARD_FIELD_IDS.status + WORKFLOW_RUN_STANDARD_FIELD_IDS.workflow ], position: 1, isVisible: true, @@ -36,7 +36,7 @@ export const workflowRunsAllView = ( { fieldMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflowRun].fields[ - WORKFLOW_RUN_STANDARD_FIELD_IDS.startedAt + WORKFLOW_RUN_STANDARD_FIELD_IDS.status ], position: 2, isVisible: true, @@ -45,12 +45,30 @@ export const workflowRunsAllView = ( { fieldMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflowRun].fields[ - WORKFLOW_RUN_STANDARD_FIELD_IDS.endedAt + WORKFLOW_RUN_STANDARD_FIELD_IDS.startedAt ], position: 3, isVisible: true, size: 150, }, + { + fieldMetadataId: + objectMetadataMap[STANDARD_OBJECT_IDS.workflowRun].fields[ + WORKFLOW_RUN_STANDARD_FIELD_IDS.createdBy + ], + position: 4, + isVisible: true, + size: 150, + }, + { + fieldMetadataId: + objectMetadataMap[STANDARD_OBJECT_IDS.workflowRun].fields[ + WORKFLOW_RUN_STANDARD_FIELD_IDS.workflowVersion + ], + position: 5, + isVisible: true, + size: 150, + }, ], }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view.ts index fff64745d..9c0a471bd 100644 --- a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflow-versions-all.view.ts @@ -1,5 +1,8 @@ import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity'; -import { WORKFLOW_VERSION_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { + BASE_OBJECT_STANDARD_FIELD_IDS, + WORKFLOW_VERSION_STANDARD_FIELD_IDS, +} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; export const workflowVersionsAllView = ( @@ -27,7 +30,7 @@ export const workflowVersionsAllView = ( { fieldMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflowVersion].fields[ - WORKFLOW_VERSION_STANDARD_FIELD_IDS.status + WORKFLOW_VERSION_STANDARD_FIELD_IDS.workflow ], position: 1, isVisible: true, @@ -36,7 +39,7 @@ export const workflowVersionsAllView = ( { fieldMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflowVersion].fields[ - WORKFLOW_VERSION_STANDARD_FIELD_IDS.trigger + WORKFLOW_VERSION_STANDARD_FIELD_IDS.status ], position: 2, isVisible: true, @@ -45,12 +48,21 @@ export const workflowVersionsAllView = ( { fieldMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflowVersion].fields[ - WORKFLOW_VERSION_STANDARD_FIELD_IDS.steps + BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt ], position: 3, isVisible: true, size: 150, }, + { + fieldMetadataId: + objectMetadataMap[STANDARD_OBJECT_IDS.workflowVersion].fields[ + WORKFLOW_VERSION_STANDARD_FIELD_IDS.runs + ], + position: 4, + isVisible: true, + size: 150, + }, ], }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view.ts b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view.ts index 330d68523..8a92629c6 100644 --- a/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view.ts +++ b/packages/twenty-server/src/engine/workspace-manager/standard-objects-prefill-data/views/workflows-all.view.ts @@ -1,5 +1,8 @@ import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity'; -import { WORKFLOW_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; +import { + BASE_OBJECT_STANDARD_FIELD_IDS, + WORKFLOW_STANDARD_FIELD_IDS, +} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; export const workflowsAllView = ( @@ -22,17 +25,53 @@ export const workflowsAllView = ( ], position: 0, isVisible: true, - size: 210, + size: 150, }, { fieldMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.workflow].fields[ - WORKFLOW_STANDARD_FIELD_IDS.lastPublishedVersionId + WORKFLOW_STANDARD_FIELD_IDS.statuses ], position: 1, isVisible: true, size: 150, }, + { + fieldMetadataId: + objectMetadataMap[STANDARD_OBJECT_IDS.workflow].fields[ + BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt + ], + position: 2, + isVisible: true, + size: 150, + }, + { + fieldMetadataId: + objectMetadataMap[STANDARD_OBJECT_IDS.workflow].fields[ + WORKFLOW_STANDARD_FIELD_IDS.createdBy + ], + position: 3, + isVisible: true, + size: 150, + }, + { + fieldMetadataId: + objectMetadataMap[STANDARD_OBJECT_IDS.workflow].fields[ + WORKFLOW_STANDARD_FIELD_IDS.versions + ], + position: 4, + isVisible: true, + size: 150, + }, + { + fieldMetadataId: + objectMetadataMap[STANDARD_OBJECT_IDS.workflow].fields[ + WORKFLOW_STANDARD_FIELD_IDS.runs + ], + position: 5, + isVisible: true, + size: 150, + }, ], }; }; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts index 05b58a7e6..97e5450d3 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids.ts @@ -445,6 +445,7 @@ export const WORKFLOW_STANDARD_FIELD_IDS = { eventListeners: '20202020-0229-4c66-832e-035c67579a38', favorites: '20202020-c554-4c41-be7a-cf9cd4b0d512', timelineActivities: '20202020-906e-486a-a798-131a5f081faf', + createdBy: '20202020-6007-401a-8aa5-e6f48581a6f3', }; export const WORKFLOW_RUN_STANDARD_FIELD_IDS = { diff --git a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts index 2e992558b..3ac94378a 100644 --- a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow-run.workspace-entity.ts @@ -129,9 +129,9 @@ export class WorkflowRunWorkspaceEntity extends BaseWorkspaceEntity { @WorkspaceField({ standardId: WORKFLOW_RUN_STANDARD_FIELD_IDS.createdBy, type: FieldMetadataType.ACTOR, - label: 'Created by', + label: 'Executed by', icon: 'IconCreativeCommonsSa', - description: 'The creator of the record', + description: 'The executor of the workflow', defaultValue: { source: `'${FieldActorSource.MANUAL}'`, name: "''", diff --git a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts index 3c69a3a75..d768e8d51 100644 --- a/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts +++ b/packages/twenty-server/src/modules/workflow/common/standard-objects/workflow.workspace-entity.ts @@ -21,6 +21,10 @@ import { TimelineActivityWorkspaceEntity } from 'src/modules/timeline/standard-o import { WorkflowEventListenerWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-event-listener.workspace-entity'; import { WorkflowRunWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity'; import { WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity'; +import { + ActorMetadata, + FieldActorSource, +} from 'src/engine/metadata-modules/field-metadata/composite-types/actor.composite-type'; export enum WorkflowStatus { DRAFT = 'DRAFT', @@ -160,4 +164,17 @@ export class WorkflowWorkspaceEntity extends BaseWorkspaceEntity { }) @WorkspaceIsSystem() timelineActivities: Relation; + + @WorkspaceField({ + standardId: WORKFLOW_STANDARD_FIELD_IDS.createdBy, + type: FieldMetadataType.ACTOR, + label: 'Created by', + icon: 'IconCreativeCommonsSa', + description: 'The creator of the record', + defaultValue: { + source: `'${FieldActorSource.MANUAL}'`, + name: "''", + }, + }) + createdBy: ActorMetadata; }