From ed946c16119a22cdc7c90492ddeba56d81566400 Mon Sep 17 00:00:00 2001 From: nichenqin Date: Fri, 27 Sep 2024 17:30:33 +0800 Subject: [PATCH] feat: allow to create template reference symmetric field --- .../src/modules/template/template.module.ts | 17 +++- .../grid-view/grid-view-data-table.svelte | 5 +- .../blocks/template/template-card.svelte | 1 + .../blocks/template/template-grid-view.svelte | 12 ++- packages/env/src/index.ts | 1 + .../persistence/src/template/template-data.ts | 27 +++++-- .../reference-field/reference-field.vo.ts | 41 +++++++--- packages/table/src/table.factory.ts | 22 +++++- packages/template/src/templates/index.ts | 2 + .../template/src/templates/test.base.json | 77 +++++++++++++++++++ 10 files changed, 177 insertions(+), 28 deletions(-) create mode 100644 packages/template/src/templates/test.base.json diff --git a/apps/backend/src/modules/template/template.module.ts b/apps/backend/src/modules/template/template.module.ts index f16390717..8e66fe952 100644 --- a/apps/backend/src/modules/template/template.module.ts +++ b/apps/backend/src/modules/template/template.module.ts @@ -1,12 +1,21 @@ import { singleton } from "@undb/di" -import { baseTemplateSchema } from "@undb/template" +import { None } from "@undb/domain" +import { baseTemplateSchema, injectTemplateQueryRepository, type ITemplateQueryRepository } from "@undb/template" import Elysia from "elysia" @singleton() export class TemplateModule { + constructor( + @injectTemplateQueryRepository() + private readonly templateRepo: ITemplateQueryRepository, + ) {} route() { - return new Elysia().get("/api/template/base/schema.json", () => { - return baseTemplateSchema - }) + return new Elysia() + .get("/api/template/base/schema.json", () => { + return baseTemplateSchema + }) + .get("/api/templates", () => { + return this.templateRepo.find(None) + }) } } diff --git a/apps/frontend/src/lib/components/blocks/grid-view/grid-view-data-table.svelte b/apps/frontend/src/lib/components/blocks/grid-view/grid-view-data-table.svelte index fe419e593..2ae13a776 100644 --- a/apps/frontend/src/lib/components/blocks/grid-view/grid-view-data-table.svelte +++ b/apps/frontend/src/lib/components/blocks/grid-view/grid-view-data-table.svelte @@ -40,6 +40,7 @@ export let currentPage: Writable export let isLoading = false export let total: number + export let hidePagination = false const t = getTable() @@ -350,6 +351,7 @@ + {#if !hidePagination}
@@ -378,6 +380,7 @@ {total} Rows
+
- + {/if} diff --git a/apps/frontend/src/lib/components/blocks/template/template-card.svelte b/apps/frontend/src/lib/components/blocks/template/template-card.svelte index 12707d52a..71c4f3352 100644 --- a/apps/frontend/src/lib/components/blocks/template/template-card.svelte +++ b/apps/frontend/src/lib/components/blocks/template/template-card.svelte @@ -80,6 +80,7 @@