Fix extra inbox notifications ()

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
This commit is contained in:
Kristina 2024-05-08 21:18:15 +04:00 committed by GitHub
parent a8c91993de
commit 42fc3a15e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 43 additions and 29 deletions
plugins/activity-resources/src/components/doc-update-message
server-plugins/notification-resources/src

View File

@ -91,6 +91,9 @@
{/if} {/if}
</span> </span>
{/await} {/await}
{#if hasSeparator}
<span class="ml-1" />
{/if}
{/if} {/if}
{/if} {/if}

View File

@ -14,7 +14,7 @@
// limitations under the License. // limitations under the License.
// //
import activity, { ActivityMessage } from '@hcengineering/activity' import activity, { ActivityMessage, DocUpdateMessage } from '@hcengineering/activity'
import chunter, { ChatMessage } from '@hcengineering/chunter' import chunter, { ChatMessage } from '@hcengineering/chunter'
import contact, { import contact, {
Employee, Employee,
@ -701,7 +701,18 @@ export async function getNotificationTxes (
cache: Map<Ref<Doc>, Doc> cache: Map<Ref<Doc>, Doc>
): Promise<Tx[]> { ): Promise<Tx[]> {
const res: Tx[] = [] const res: Tx[] = []
const notifyResult = await isShouldNotifyTx(control, tx, originTx, object, target, params.isOwn, params.isSpace) for (const message of activityMessages) {
const docMessage = message._class === activity.class.DocUpdateMessage ? (message as DocUpdateMessage) : undefined
const notifyResult = await isShouldNotifyTx(
control,
tx,
originTx,
object,
target,
params.isOwn,
params.isSpace,
docMessage
)
if (notifyResult.allowed) { if (notifyResult.allowed) {
await pushActivityInboxNotifications( await pushActivityInboxNotifications(
@ -711,7 +722,7 @@ export async function getNotificationTxes (
target, target,
object, object,
docNotifyContexts, docNotifyContexts,
activityMessages, [message],
params.shouldUpdateTimestamp, params.shouldUpdateTimestamp,
notifyResult.push, notifyResult.push,
cache cache
@ -719,11 +730,11 @@ export async function getNotificationTxes (
} }
if (notifyResult.emails.length === 0) { if (notifyResult.emails.length === 0) {
return res continue
} }
const acc = await getPersonAccountById(target, control) const acc = await getPersonAccountById(target, control)
if (acc === undefined) { if (acc === undefined) {
return res continue
} }
const emp = await getEmployee(acc.person as Ref<Employee>, control) const emp = await getEmployee(acc.person as Ref<Employee>, control)
if (emp?.active === true) { if (emp?.active === true) {
@ -737,7 +748,7 @@ export async function getNotificationTxes (
) )
} }
} }
}
return res return res
} }