Skip to content

Commit 7b864a6

Browse files
committed
fix(love): use addCollection/createTxCollectionCUD for MeetingMinutes creation
MeetingMinutes were created via createDoc/createTxCreateDoc, which stores attachedTo/attachedToClass/collection inside the document attributes rather than as top-level transaction properties. The collection counter trigger in server/middleware/triggers.ts only fires when those fields are top-level, so the Room's `meetings` counter was never incremented and the MeetingMinutesSection.svelte guard (`meetings > 0`) always fell through to "No meeting minutes". - models/love: change @model parent from core.class.Doc to core.class.AttachedDoc so hierarchy.isDerived works correctly - plugins/love-resources: replace client.createDoc with client.addCollection - server-plugins/love-resources: wrap createTxCreateDoc in createTxCollectionCUD Fixes #10526 Related #8785, #7303 Signed-off-by: Yulian Diaz <5605867+spatialy@users.noreply.github.com>
1 parent 44f2f8d commit 7b864a6

3 files changed

Lines changed: 11 additions & 7 deletions

File tree

models/love/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ export class TMeeting extends TEvent implements Meeting {
180180
room!: Ref<Room>
181181
}
182182

183-
@Model(love.class.MeetingMinutes, core.class.Doc, DOMAIN_MEETING_MINUTES)
183+
@Model(love.class.MeetingMinutes, core.class.AttachedDoc, DOMAIN_MEETING_MINUTES)
184184
@UX(
185185
love.string.MeetingMinutes,
186186
love.icon.MeetingMinutes,

plugins/love-resources/src/meetings.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,13 +172,10 @@ async function moveToMeetingRoom (room: Room): Promise<void> {
172172

173173
async function createMeetingDocument (room: Room): Promise<void> {
174174
const client = getClient()
175-
await client.createDoc(love.class.MeetingMinutes, core.space.Workspace, {
175+
await client.addCollection(love.class.MeetingMinutes, core.space.Workspace, room._id, love.class.Room, 'meetings', {
176176
description: null,
177-
attachedTo: room._id,
178177
status: MeetingStatus.Active,
179-
title: await getNewMeetingTitle(room),
180-
attachedToClass: love.class.Room,
181-
collection: 'meetings'
178+
title: await getNewMeetingTitle(room)
182179
})
183180
}
184181

server-plugins/love-resources/src/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ async function roomJoinHandler (info: ParticipantInfo, control: TriggerControl):
225225
year: 'numeric'
226226
})
227227
.replace(',', ' at')
228-
const tx = control.txFactory.createTxCreateDoc(
228+
const innerTx = control.txFactory.createTxCreateDoc(
229229
love.class.MeetingMinutes,
230230
core.space.Workspace,
231231
{
@@ -238,6 +238,13 @@ async function roomJoinHandler (info: ParticipantInfo, control: TriggerControl):
238238
},
239239
_id
240240
)
241+
const tx = control.txFactory.createTxCollectionCUD(
242+
love.class.Room,
243+
info.room,
244+
core.space.Workspace,
245+
'meetings',
246+
innerTx
247+
)
241248
tx.space = core.space.Tx
242249
res.push(tx)
243250
res.push(

0 commit comments

Comments
 (0)