From ae7821ce70b66fa4a220a4167795a4f80a65cdac Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Wed, 31 Jul 2024 17:49:56 +0200 Subject: [PATCH] Fast follows on new task/note behaviors (#6477) In this PR, I'm fixing two issues that we have faced: - computing a rich text first line in case of the first block content is not a text - migrating existing timelineActivities tied to tasks / notes to linked-tasks / linked-notes during migration command --- .../utils/getFirstNonEmptyLineOfRichText.ts | 12 ++++++-- .../0-23/0-23-update-activities.command.ts | 28 +++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/packages/twenty-front/src/modules/ui/input/editor/utils/getFirstNonEmptyLineOfRichText.ts b/packages/twenty-front/src/modules/ui/input/editor/utils/getFirstNonEmptyLineOfRichText.ts index 475badcda..53ec8e6d6 100644 --- a/packages/twenty-front/src/modules/ui/input/editor/utils/getFirstNonEmptyLineOfRichText.ts +++ b/packages/twenty-front/src/modules/ui/input/editor/utils/getFirstNonEmptyLineOfRichText.ts @@ -9,15 +9,21 @@ export const getFirstNonEmptyLineOfRichText = ( } for (const node of fieldValue) { if (!isUndefinedOrNull(node.content)) { - const contentArray = node.content as Array<{ text: string }>; + const contentArray = node.content as Array< + { text: string } | { link: string } + >; if (contentArray.length > 0) { for (const content of contentArray) { - if (content.text?.trim() !== '') { - return content.text; + if ('link' in content) { + return content.link; + } + if ('text' in content) { + return content.text.trim(); } } } } } + return ''; }; diff --git a/packages/twenty-server/src/database/commands/upgrade-version/0-23/0-23-update-activities.command.ts b/packages/twenty-server/src/database/commands/upgrade-version/0-23/0-23-update-activities.command.ts index 3b409e01c..115448c87 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version/0-23/0-23-update-activities.command.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version/0-23/0-23-update-activities.command.ts @@ -165,11 +165,25 @@ export class UpdateActivitiesCommand extends CommandRunner { await timelineActivityRepository.update( { + name: 'note.created', linkedObjectMetadataId: activityObjectMetadataId, linkedRecordId: activity.id, }, { linkedObjectMetadataId: noteObjectMetadataId, + name: 'linked-note.created', + }, + ); + + await timelineActivityRepository.update( + { + name: 'note.updated', + linkedObjectMetadataId: activityObjectMetadataId, + linkedRecordId: activity.id, + }, + { + linkedObjectMetadataId: noteObjectMetadataId, + name: 'linked-note.updated', }, ); @@ -214,11 +228,25 @@ export class UpdateActivitiesCommand extends CommandRunner { await timelineActivityRepository.update( { + name: 'task.created', linkedObjectMetadataId: activityObjectMetadataId, linkedRecordId: activity.id, }, { linkedObjectMetadataId: taskObjectMetadataId, + name: 'linked-task.created', + }, + ); + + await timelineActivityRepository.update( + { + name: 'task.updated', + linkedObjectMetadataId: activityObjectMetadataId, + linkedRecordId: activity.id, + }, + { + linkedObjectMetadataId: taskObjectMetadataId, + name: 'linked-task.updated', }, ); await attachmentRepository.update(