diff --git a/app/components/base/DraggableTree.vue b/app/components/base/DraggableTree.vue deleted file mode 100644 index 3decca2..0000000 --- a/app/components/base/DraggableTree.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - \ No newline at end of file diff --git a/app/components/base/DraggableTreeItem.vue b/app/components/base/DraggableTreeItem.vue deleted file mode 100644 index 7649ebe..0000000 --- a/app/components/base/DraggableTreeItem.vue +++ /dev/null @@ -1,140 +0,0 @@ - - - \ No newline at end of file diff --git a/app/db/schema.ts b/app/db/schema.ts index c5f4f30..e49a23d 100644 --- a/app/db/schema.ts +++ b/app/db/schema.ts @@ -84,10 +84,10 @@ export const characterChoicesTable = table("character_choices", { export const campaignTable = table("campaign", { id: int().primaryKey({ autoIncrement: true }), name: text().notNull(), - description: text(), owner: int().notNull().references(() => usersTable.id, { onDelete: 'cascade', onUpdate: 'cascade' }), link: text().notNull(), status: text({ enum: ['PREPARING', 'PLAYING', 'ARCHIVED'] }).default('PREPARING'), + settings: text({ mode: 'json' }).default('{}'), inventory: text({ mode: 'json' }).default('[]'), money: int().default(0), public_notes: text().default(''), @@ -103,11 +103,11 @@ export const campaignCharactersTable = table("campaign_characters", { }, (table) => [primaryKey({ columns: [table.id, table.character] })]); export const campaignLogsTable = table("campaign_logs", { id: int().references(() => campaignTable.id, { onDelete: 'cascade', onUpdate: 'cascade' }), - from: int().references(() => campaignCharactersTable.character, { onDelete: 'cascade', onUpdate: 'cascade' }), + target: int().references(() => campaignCharactersTable.character, { onDelete: 'cascade', onUpdate: 'cascade' }), timestamp: int({ mode: 'timestamp_ms' }).notNull(), type: text({ enum: ['ITEM', 'CHARACTER', 'PLACE', 'EVENT', 'FIGHT', 'TEXT'] }), details: text().notNull(), -}, (table) => [primaryKey({ columns: [table.id, table.from, table.timestamp] })]); +}, (table) => [primaryKey({ columns: [table.id, table.target, table.timestamp] })]); export const usersRelation = relations(usersTable, ({ one, many }) => ({ data: one(usersDataTable, { fields: [usersTable.id], references: [usersDataTable.id], }), @@ -166,5 +166,5 @@ export const campaignCharacterRelation = relations(campaignCharactersTable, ({ o })); export const campaignLogsRelation = relations(campaignLogsTable, ({ one }) => ({ campaign: one(campaignTable, { fields: [campaignLogsTable.id], references: [campaignTable.id], }), - character: one(campaignCharactersTable, { fields: [campaignLogsTable.from], references: [campaignCharactersTable.character], }), + character: one(campaignCharactersTable, { fields: [campaignLogsTable.target], references: [campaignCharactersTable.character], }), })); \ No newline at end of file diff --git a/app/pages/campaign/[id]/index.client.vue b/app/pages/campaign/[id]/index.client.vue index 3eb79ed..3b424d6 100644 --- a/app/pages/campaign/[id]/index.client.vue +++ b/app/pages/campaign/[id]/index.client.vue @@ -16,6 +16,10 @@ onMounted(() => { { const campaign = new CampaignSheet(id, user); container.value.appendChild(campaign.container); + + onUnmounted(() => { + campaign.ws?.close(); + }) } }); }) diff --git a/app/pages/campaign/index.client.vue b/app/pages/campaign/index.client.vue index 325f7f1..6401da4 100644 --- a/app/pages/campaign/index.client.vue +++ b/app/pages/campaign/index.client.vue @@ -38,7 +38,7 @@ function create() { useRequestFetch()('/api/campaign', { method: 'POST', - body: { id: 'new', name: 'Test', description: '', joinby: 'link' }, + body: { name: 'Margooning', public_notes: '', dm_notes: '', settings: {} }, }).then(() => Toaster.add({ duration: 8000, content: 'Campagne créée', type: 'info' })).catch((e) => Toaster.add({ duration: 8000, title: 'Une erreur est survenue', content: e, type: 'error' })) } @@ -52,6 +52,7 @@ function create()