diff --git a/apps/server/src/core/label/label.service.ts b/apps/server/src/core/label/label.service.ts index f0d63eba6..4c5aa1065 100644 --- a/apps/server/src/core/label/label.service.ts +++ b/apps/server/src/core/label/label.service.ts @@ -30,7 +30,7 @@ export class LabelService { LabelType.PAGE, trx, ); - await this.labelRepo.addLabelToPage(pageId, label.id, trx); + await this.labelRepo.addLabelToPage(pageId, label.id, workspaceId, trx); attached.push(label); } }); diff --git a/apps/server/src/database/repos/label/label.repo.ts b/apps/server/src/database/repos/label/label.repo.ts index bac199ed4..9f25d26eb 100644 --- a/apps/server/src/database/repos/label/label.repo.ts +++ b/apps/server/src/database/repos/label/label.repo.ts @@ -8,6 +8,8 @@ import { PaginationOptions } from '@docmost/db/pagination/pagination-options'; import { executeWithCursorPagination } from '@docmost/db/pagination/cursor-pagination'; import { jsonArrayFrom, jsonObjectFrom } from 'kysely/helpers/postgres'; import { normalizeLabelName } from '../../../core/label/utils'; +import { EventEmitter2 } from '@nestjs/event-emitter'; +import { EventName } from 'src/common/events/event.contants'; export const LabelType = { PAGE: 'page', @@ -21,6 +23,7 @@ export class LabelRepo { constructor( @InjectKysely() private readonly db: KyselyDB, private readonly spaceMemberRepo: SpaceMemberRepo, + private readonly eventEmitter: EventEmitter2, ) {} async findById( @@ -166,6 +169,7 @@ export class LabelRepo { async addLabelToPage( pageId: string, labelId: string, + workspaceId: string, trx?: KyselyTransaction, ): Promise { const db = dbOrTx(this.db, trx); @@ -174,6 +178,11 @@ export class LabelRepo { .values({ pageId, labelId }) .onConflict((oc) => oc.doNothing()) .execute(); + + this.eventEmitter.emit(EventName.PAGE_UPDATED, { + pageIds: [pageId], + workspaceId: workspaceId, + }); } async removeLabelFromPage( @@ -197,6 +206,11 @@ export class LabelRepo { ), ) .execute(); + + this.eventEmitter.emit(EventName.PAGE_UPDATED, { + pageIds: [pageId], + workspaceId: workspaceId, + }); } async getPageLabelCount( diff --git a/apps/server/src/database/types/db.d.ts b/apps/server/src/database/types/db.d.ts index 4756c2636..ac5b2c37c 100644 --- a/apps/server/src/database/types/db.d.ts +++ b/apps/server/src/database/types/db.d.ts @@ -312,6 +312,7 @@ export interface PageHistory { export interface Pages { content: Json | null; contributorIds: Generated; + labelIds: Generated; coverPhoto: string | null; createdAt: Generated; creatorId: string | null; diff --git a/apps/server/src/ee b/apps/server/src/ee index 433ed9d64..54bafd9a1 160000 --- a/apps/server/src/ee +++ b/apps/server/src/ee @@ -1 +1 @@ -Subproject commit 433ed9d646b1daa9f386bf3788bb5cfbe5348194 +Subproject commit 54bafd9a140f167127d001e548f6bfb84a2cd4d4