diff --git a/models/task/src/index.ts b/models/task/src/index.ts index 43d6fbd4e8..896939c330 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -640,6 +640,10 @@ export async function fixTaskTypes ( const resultProjects: Project[] = [] for (const t of projectTypes) { + if (t.tasks?.length > 0) { + // Already migrated. + continue + } t.tasks = [...(t.tasks ?? [])] if (t.targetClass === undefined) { const targetProjectClassId: Ref> = generateId() diff --git a/models/task/src/migration.ts b/models/task/src/migration.ts index 0029ffc394..939af4afe3 100644 --- a/models/task/src/migration.ts +++ b/models/task/src/migration.ts @@ -55,7 +55,11 @@ async function reorderStates (_client: MigrationUpgradeClient): Promise { const bIndex = order.indexOf(states.get(b)?.category ?? task.statusCategory.UnStarted) return aIndex - bIndex }) - await client.diffUpdate(taskType, { statuses }) + try { + await client.diffUpdate(taskType, { statuses }) + } catch (err: any) { + console.error(err) + } } } diff --git a/packages/ui/src/utils.ts b/packages/ui/src/utils.ts index 1c11c57cae..2bd2495423 100644 --- a/packages/ui/src/utils.ts +++ b/packages/ui/src/utils.ts @@ -173,13 +173,18 @@ export function mouseAttractor (op: () => void, diff = 2): (evt: MouseEvent) => * @returns {string} string with replaced URLs */ export function replaceURLs (text: string): string { - return autolinker.link(text, { - urls: true, - phone: false, - email: false, - sanitizeHtml: true, - stripPrefix: false - }) + try { + return autolinker.link(text, { + urls: true, + phone: false, + email: false, + sanitizeHtml: true, + stripPrefix: false + }) + } catch (err: any) { + console.error(err) + return text + } } /** diff --git a/plugins/activity-resources/src/index.ts b/plugins/activity-resources/src/index.ts index 34af2f8029..9c0bd9d662 100644 --- a/plugins/activity-resources/src/index.ts +++ b/plugins/activity-resources/src/index.ts @@ -31,6 +31,7 @@ export { default as Reactions } from './components/reactions/Reactions.svelte' export { default as ActivityMessageTemplate } from './components/activity-message/ActivityMessageTemplate.svelte' export { default as ActivityMessagePresenter } from './components/activity-message/ActivityMessagePresenter.svelte' export { default as ActivityExtension } from './components/ActivityExtension.svelte' +export { default as ActivityMessageHeader } from './components/activity-message/ActivityMessageHeader.svelte' export default async (): Promise => ({ component: {