diff --git a/models/notification/src/index.ts b/models/notification/src/index.ts index 30303d05de..11c4f4edfa 100644 --- a/models/notification/src/index.ts +++ b/models/notification/src/index.ts @@ -468,7 +468,6 @@ export function createModel (builder: Builder): void { objectClass: notification.mixin.Collaborators, action: 'update', icon: notification.icon.Notifications, - component: notification.activity.TxCollaboratorsChange, label: notification.string.ChangeCollaborators }, notification.ids.NotificationCollaboratorsChanged diff --git a/models/telegram/src/index.ts b/models/telegram/src/index.ts index 0271ba1d8f..866e83260b 100644 --- a/models/telegram/src/index.ts +++ b/models/telegram/src/index.ts @@ -140,7 +140,7 @@ export function createModel (builder: Builder): void { objectClass: telegram.class.Message, action: 'create', icon: contact.icon.Telegram, - component: telegram.notification.NotificationMessageCreated, + component: telegram.activity.TelegramMessageCreated, label: telegram.string.SharedMessages }, telegram.ids.TelegramMessageCreatedActivityViewlet diff --git a/models/telegram/src/plugin.ts b/models/telegram/src/plugin.ts index 9d6229c3ac..d0e905c9b9 100644 --- a/models/telegram/src/plugin.ts +++ b/models/telegram/src/plugin.ts @@ -52,6 +52,7 @@ export default mergeIds(telegramId, telegram, { }, activity: { TxMessage: '' as AnyComponent, - TxSharedCreate: '' as AnyComponent + TxSharedCreate: '' as AnyComponent, + TelegramMessageCreated: '' as AnyComponent } }) diff --git a/plugins/activity-resources/src/activityMessagesUtils.ts b/plugins/activity-resources/src/activityMessagesUtils.ts index 42bdb8fb8b..1f5d5a52ff 100644 --- a/plugins/activity-resources/src/activityMessagesUtils.ts +++ b/plugins/activity-resources/src/activityMessagesUtils.ts @@ -22,17 +22,11 @@ import core, { groupByArray, type Hierarchy, type Ref, - SortingOrder, - type TxCollectionCUD, - type TxCreateDoc, - type TxCUD, - type TxMixin, - TxProcessor, - type TxUpdateDoc + SortingOrder } from '@hcengineering/core' import view, { type AttributeModel } from '@hcengineering/view' import { getClient, getFiltredKeys } from '@hcengineering/presentation' -import { getAttributePresenter, getDocLinkTitle } from '@hcengineering/view-resources' +import { buildRemovedDoc, getAttributePresenter, getDocLinkTitle } from '@hcengineering/view-resources' import { type Person } from '@hcengineering/contact' import { type IntlString } from '@hcengineering/platform' import { type AnyComponent } from '@hcengineering/ui' @@ -60,36 +54,6 @@ const valueTypes: ReadonlyArray>> = [ core.class.TypeHyperlink ] -async function buildRemovedDoc (client: Client, objectId: Ref, _class: Ref>): Promise { - const isAttached = client.getHierarchy().isDerived(_class, core.class.AttachedDoc) - const txes = await client.findAll>( - isAttached ? core.class.TxCollectionCUD : core.class.TxCUD, - isAttached - ? { 'tx.objectId': objectId as Ref } - : { - objectId - }, - { sort: { modifiedOn: 1 } } - ) - const createTx = isAttached - ? txes.map((tx) => (tx as TxCollectionCUD).tx).find((tx) => tx._class === core.class.TxCreateDoc) - : txes.find((tx) => tx._class === core.class.TxCreateDoc) - - if (createTx === undefined) return - let doc = TxProcessor.createDoc2Doc(createTx as TxCreateDoc) - - for (let tx of txes) { - tx = TxProcessor.extractTx(tx) as TxCUD - if (tx._class === core.class.TxUpdateDoc) { - doc = TxProcessor.updateDoc2Doc(doc, tx as TxUpdateDoc) - } else if (tx._class === core.class.TxMixin) { - const mixinTx = tx as TxMixin - doc = TxProcessor.updateMixin4Doc(doc, mixinTx) - } - } - return doc -} - export async function getAttributeValues (client: Client, values: any[], attrClass: Ref>): Promise { if (values.some((value) => typeof value !== 'string')) { return values @@ -127,23 +91,6 @@ export function getCollectionAttribute ( return undefined } -export async function getActivityObject ( - client: Client, - objectId: Ref, - objectClass: Ref> -): Promise<{ isRemoved: boolean, object?: Doc }> { - const object = await client.findOne(objectClass, { _id: objectId }) - - if (object !== undefined) { - return { isRemoved: false, object } - } - - return { - isRemoved: true, - object: await buildRemovedDoc(client, objectId, objectClass) - } -} - export async function getAttributeModel ( client: Client, attributeUpdates: DocAttributeUpdates | undefined, diff --git a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageContent.svelte b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageContent.svelte index 613f702df4..cc17e09bca 100644 --- a/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageContent.svelte +++ b/plugins/activity-resources/src/components/doc-update-message/DocUpdateMessageContent.svelte @@ -20,7 +20,7 @@ import view from '@hcengineering/view' import activity, { DisplayDocUpdateMessage, DocUpdateMessage, DocUpdateMessageViewlet } from '@hcengineering/activity' - import NotificationObjectValue from './DocUpdateMessageObjectValue.svelte' + import DocUpdateMessageObjectValue from './DocUpdateMessageObjectValue.svelte' export let message: DisplayDocUpdateMessage export let viewlet: DocUpdateMessageViewlet | undefined @@ -42,7 +42,6 @@ $: valueMessages = message.previousMessages?.length ? [...message.previousMessages, message] : [message] $: hasDifferentActions = message.previousMessages?.some(({ action }) => action !== message.action) - // TODO: use AcrivityIcon $: icon = viewlet?.icon ?? collectionAttribute?.icon ?? clazz.icon ?? activity.icon.Activity @@ -70,7 +69,7 @@ {@const createMessages = valueMessages.filter(({ action }) => action === 'create')} {#each createMessages as valueMessage, index} - {/each} {#each removeMessages as valueMessage, index} - -{#await getActivityObject(client, message.objectId, message.objectClass) then { object }} +{#if object} {#await getValue(object) then value} {#if withIcon && message.action === 'create'} @@ -71,7 +86,7 @@ {/if} {/await} -{/await} +{/if}