mirror of
https://github.com/hcengineering/platform.git
synced 2024-11-22 21:50:34 +03:00
Fix extra inbox notifications (#5550)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
This commit is contained in:
parent
a8c91993de
commit
42fc3a15e9
@ -91,6 +91,9 @@
|
||||
{/if}
|
||||
</span>
|
||||
{/await}
|
||||
{#if hasSeparator}
|
||||
<span class="ml-1" />
|
||||
{/if}
|
||||
{/if}
|
||||
{/if}
|
||||
|
||||
|
@ -14,7 +14,7 @@
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import activity, { ActivityMessage } from '@hcengineering/activity'
|
||||
import activity, { ActivityMessage, DocUpdateMessage } from '@hcengineering/activity'
|
||||
import chunter, { ChatMessage } from '@hcengineering/chunter'
|
||||
import contact, {
|
||||
Employee,
|
||||
@ -701,43 +701,54 @@ export async function getNotificationTxes (
|
||||
cache: Map<Ref<Doc>, Doc>
|
||||
): Promise<Tx[]> {
|
||||
const res: Tx[] = []
|
||||
const notifyResult = await isShouldNotifyTx(control, tx, originTx, object, target, params.isOwn, params.isSpace)
|
||||
|
||||
if (notifyResult.allowed) {
|
||||
await pushActivityInboxNotifications(
|
||||
originTx,
|
||||
for (const message of activityMessages) {
|
||||
const docMessage = message._class === activity.class.DocUpdateMessage ? (message as DocUpdateMessage) : undefined
|
||||
const notifyResult = await isShouldNotifyTx(
|
||||
control,
|
||||
res,
|
||||
target,
|
||||
tx,
|
||||
originTx,
|
||||
object,
|
||||
docNotifyContexts,
|
||||
activityMessages,
|
||||
params.shouldUpdateTimestamp,
|
||||
notifyResult.push,
|
||||
cache
|
||||
target,
|
||||
params.isOwn,
|
||||
params.isSpace,
|
||||
docMessage
|
||||
)
|
||||
}
|
||||
|
||||
if (notifyResult.emails.length === 0) {
|
||||
return res
|
||||
}
|
||||
const acc = await getPersonAccountById(target, control)
|
||||
if (acc === undefined) {
|
||||
return res
|
||||
}
|
||||
const emp = await getEmployee(acc.person as Ref<Employee>, control)
|
||||
if (emp?.active === true) {
|
||||
for (const type of notifyResult.emails) {
|
||||
await notifyByEmail(
|
||||
if (notifyResult.allowed) {
|
||||
await pushActivityInboxNotifications(
|
||||
originTx,
|
||||
control,
|
||||
type._id,
|
||||
res,
|
||||
target,
|
||||
object,
|
||||
originTx.modifiedBy as Ref<PersonAccount>,
|
||||
target as Ref<PersonAccount>
|
||||
docNotifyContexts,
|
||||
[message],
|
||||
params.shouldUpdateTimestamp,
|
||||
notifyResult.push,
|
||||
cache
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (notifyResult.emails.length === 0) {
|
||||
continue
|
||||
}
|
||||
const acc = await getPersonAccountById(target, control)
|
||||
if (acc === undefined) {
|
||||
continue
|
||||
}
|
||||
const emp = await getEmployee(acc.person as Ref<Employee>, control)
|
||||
if (emp?.active === true) {
|
||||
for (const type of notifyResult.emails) {
|
||||
await notifyByEmail(
|
||||
control,
|
||||
type._id,
|
||||
object,
|
||||
originTx.modifiedBy as Ref<PersonAccount>,
|
||||
target as Ref<PersonAccount>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user