From 199490b6a963cb31c764504e7813336c76b76dc0 Mon Sep 17 00:00:00 2001 From: Rizky Date: Sun, 10 Mar 2024 07:19:33 +0700 Subject: [PATCH] wip fix --- app/db/prisma/schema.prisma | 171 ++---------------- .../nova/ed/panel/header/mid/comp-picker.tsx | 2 +- app/web/src/nova/ed/panel/popup/code/code.tsx | 112 +----------- .../nova/ed/panel/popup/code/name-list.tsx | 153 ---------------- 4 files changed, 22 insertions(+), 416 deletions(-) delete mode 100644 app/web/src/nova/ed/panel/popup/code/name-list.tsx diff --git a/app/db/prisma/schema.prisma b/app/db/prisma/schema.prisma index 31e0e076..f88f0d01 100644 --- a/app/db/prisma/schema.prisma +++ b/app/db/prisma/schema.prisma @@ -7,19 +7,6 @@ datasource db { url = env("DATABASE_URL") } -model billing_account { - id String @id(map: "billing_account_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - id_organization String @db.Uuid - user_created String @db.Uuid - payment_info Json? - payment_method String - is_default Boolean - created_at DateTime @default(now()) @db.Timestamp(6) - updated_at DateTime @default(now()) @db.Timestamp(6) - org org @relation(fields: [id_organization], references: [id], onDelete: NoAction, onUpdate: NoAction) - user user @relation(fields: [user_created], references: [id], onDelete: NoAction, onUpdate: NoAction) -} - model component { id String @id(map: "component_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String @@ -36,7 +23,6 @@ model component_group { id String @id(map: "site_comp_group_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String shared Boolean @default(false) - code_assign code_assign[] component component[] component_site component_site[] } @@ -51,58 +37,6 @@ model component_site { @@id([id_component_group, id_site], map: "component_site_id_component_group_id_site") } -model discount { - id String @id(map: "discount_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - name String - code String @unique(map: "discount_code") - date_start DateTime @db.Timestamp(6) - date_end DateTime @db.Timestamp(6) - price Decimal? @db.Decimal(18, 3) - percent Float? @db.Real - max_precent Float? @db.Real - description String? - invoice_item invoice_item[] -} - -model feature { - id String @id(map: "feature_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - feature Json? - price Decimal @db.Decimal(18, 3) - created_at DateTime? @default(now()) @db.Timestamp(6) - updated_at DateTime? @default(now()) @db.Timestamp(6) - name String - trial_duration Int? - subscribe_duration Int? - invoice_item invoice_item[] -} - -model invoice { - id String @id(map: "invoice_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - code String - user_id String @db.Uuid - status String - total Decimal @default(0) @db.Decimal(18, 3) - due_date DateTime? @default(now()) @db.Timestamp(6) - created_at DateTime? @default(now()) @db.Timestamp(6) - updated_at DateTime? @default(now()) @db.Timestamp(6) - user user @relation(fields: [user_id], references: [id], onDelete: NoAction, onUpdate: NoAction) - invoice_item invoice_item[] - payment payment[] -} - -model invoice_item { - id String @id(map: "invoice_item_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - invoice_id String @db.Uuid - feature_id String @db.Uuid - discount_id String? @db.Uuid - price Decimal @default(0) @db.Decimal(18, 3) - discount_val Decimal @default(0) @db.Decimal(18, 3) - created_at DateTime? @default(now()) @db.Timestamp(6) - discount discount? @relation(fields: [discount_id], references: [id], onDelete: NoAction, onUpdate: NoAction) - feature feature @relation(fields: [feature_id], references: [id], onDelete: NoAction, onUpdate: NoAction) - invoice invoice @relation(fields: [invoice_id], references: [id], onDelete: NoAction, onUpdate: NoAction) -} - model npm_page { id BigInt @id @default(autoincrement()) id_page String @db.Uuid @@ -125,15 +59,14 @@ model npm_site { } model org { - id String @id(map: "organization_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - name String - created_at DateTime? @default(now()) @db.Timestamp(6) - updated_at DateTime? @db.Timestamp(6) - created_by String? @db.Uuid - billing_account billing_account[] - user user? @relation(fields: [created_by], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "organization_user_created_fkey") - org_user org_user[] - site site[] + id String @id(map: "organization_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + name String + created_at DateTime? @default(now()) @db.Timestamp(6) + updated_at DateTime? @db.Timestamp(6) + created_by String? @db.Uuid + user user? @relation(fields: [created_by], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "organization_user_created_fkey") + org_user org_user[] + site site[] } model org_user { @@ -159,7 +92,6 @@ model page { is_deleted Boolean @default(false) id_layout String? @db.Uuid is_default_layout Boolean @default(false) - code_assign code_assign[] page_folder page_folder? @relation(fields: [id_folder], references: [id], onDelete: NoAction, onUpdate: NoAction) page page? @relation("pageTopage", fields: [id_layout], references: [id], onDelete: NoAction, onUpdate: NoAction) other_page page[] @relation("pageTopage") @@ -177,39 +109,6 @@ model page_folder { site site @relation(fields: [id_site], references: [id], onDelete: NoAction, onUpdate: NoAction) } -model payment { - id String @id(map: "payment_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - nominal Decimal @default(0) @db.Decimal(18, 3) - id_invoice String @db.Uuid - type String? @db.VarChar(10) - payment_method String @default("CC") @db.VarChar(30) - payment_method_detail Json? - status String - payment_date DateTime? @db.Timestamp(6) - expired_date DateTime @db.Timestamp(6) - description String - created_at DateTime? @default(now()) @db.Timestamp(6) - updated_at DateTime? @default(now()) @db.Timestamp(6) - invoice invoice @relation(fields: [id_invoice], references: [id], onDelete: NoAction, onUpdate: NoAction) - payment_history payment_history[] -} - -model payment_history { - id String @id(map: "payment_history_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - payment_id String @db.Uuid - status String - created_at DateTime? @default(now()) @db.Timestamp(6) - payment payment @relation(fields: [payment_id], references: [id], onDelete: NoAction, onUpdate: NoAction) -} - -model plugin { - id String @id(map: "plugin_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - name String - desc String - init_script String? @default("") - site_plugin site_plugin[] -} - model site { id String @id(map: "site_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid name String @@ -227,27 +126,15 @@ model site { responsive String @default("all") npm_cache String @default(" ") @db.VarChar code_mode String @default("old") @db.VarChar(5) - code code[] component_site component_site[] npm_site npm_site[] page page[] page_folder page_folder[] org org? @relation(fields: [id_org], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "site_id_organization_fkey") user user @relation(fields: [id_user], references: [id], onDelete: NoAction, onUpdate: NoAction) - site_plugin site_plugin[] site_query site_query[] } -model site_plugin { - id_site String @db.Uuid - id_plugin String @db.Uuid - config Json - plugin plugin @relation(fields: [id_plugin], references: [id], onDelete: NoAction, onUpdate: NoAction) - site site @relation(fields: [id_site], references: [id], onDelete: NoAction, onUpdate: NoAction) - - @@id([id_site, id_plugin], map: "id_site_plugin") -} - model site_query { id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid id_site String? @db.Uuid @@ -264,51 +151,21 @@ model site_use_comp { } model user { - id String @id(map: "user_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - username String @unique(map: "user_username") + id String @id(map: "user_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid + username String @unique(map: "user_username") password String phone String email String - created_at DateTime? @default(now()) @db.Timestamp(6) + created_at DateTime? @default(now()) @db.Timestamp(6) token_reset_password String? - token_reset_password_expired DateTime? @db.Timestamp(6) - updated_at DateTime? @default(now()) @db.Timestamp(6) - nominal_deposit Decimal @default(0) @db.Decimal(18, 3) - billing_account billing_account[] - invoice invoice[] + token_reset_password_expired DateTime? @db.Timestamp(6) + updated_at DateTime? @default(now()) @db.Timestamp(6) + nominal_deposit Decimal @default(0) @db.Decimal(18, 3) org org[] org_user org_user[] site site[] } -model code { - id String @id(map: "code_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - id_site String @db.Uuid - name String @default("site") - site site @relation(fields: [id_site], references: [id], onDelete: Cascade, onUpdate: NoAction) - code_assign code_assign[] - code_file code_file[] -} - -model code_file { - path String - content String - id_code String @db.Uuid - code code @relation(fields: [id_code], references: [id], onDelete: Cascade, onUpdate: NoAction) - - @@id([path, id_code], map: "id_code_file") -} - -model code_assign { - id_code String @db.Uuid - id_component_group String? @db.Uuid - id_page String? @db.Uuid - id String @id(map: "code_assign_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid - code code @relation(fields: [id_code], references: [id], onDelete: Cascade, onUpdate: NoAction) - component_group component_group? @relation(fields: [id_component_group], references: [id], onDelete: NoAction, onUpdate: NoAction) - page page? @relation(fields: [id_page], references: [id], onDelete: NoAction, onUpdate: NoAction) -} - model page_history { id String @id(map: "page_history_id") @default(dbgenerated("gen_random_uuid()")) @db.Uuid id_page String @db.Uuid diff --git a/app/web/src/nova/ed/panel/header/mid/comp-picker.tsx b/app/web/src/nova/ed/panel/header/mid/comp-picker.tsx index fb23cb53..2ca815ec 100644 --- a/app/web/src/nova/ed/panel/header/mid/comp-picker.tsx +++ b/app/web/src/nova/ed/panel/header/mid/comp-picker.tsx @@ -81,7 +81,7 @@ export const EdCompPicker = () => { >
`, + __html: ``, }} >
diff --git a/app/web/src/nova/ed/panel/popup/code/code.tsx b/app/web/src/nova/ed/panel/popup/code/code.tsx index 05c7a127..2d6b6b92 100644 --- a/app/web/src/nova/ed/panel/popup/code/code.tsx +++ b/app/web/src/nova/ed/panel/popup/code/code.tsx @@ -3,18 +3,15 @@ import { useGlobal, useLocal } from "web-utils"; import { isLocalhost } from "../../../../../utils/ui/is-localhost"; import { Loading } from "../../../../../utils/ui/loading"; import { Modal } from "../../../../../utils/ui/modal"; -import { Popover } from "../../../../../utils/ui/popover"; import { Tooltip } from "../../../../../utils/ui/tooltip"; import { EDGlobal } from "../../../logic/ed-global"; import { - iconChevronDown, iconDownload, iconNewTab, iconScrollOff, iconScrollOn, - iconUpload, + iconUpload } from "./icons"; -import { CodeNameItem, CodeNameList } from "./name-list"; export const code = { mode: "" as "" | "old" | "new", @@ -33,16 +30,12 @@ export const EdPopCode = () => { useEffect(() => { if (code.mode === "" && p.site.id) { - _db.code.findFirst({ where: { id_site: p.site.id } }).then((e) => { - code.mode = e ? "new" : "old"; + if (localStorage.vsc_opened === "yes") { + localStorage.removeItem("vsc_opened"); + p.ui.popup.code.open = true; + } - if (localStorage.vsc_opened === "yes") { - localStorage.removeItem("vsc_opened"); - p.ui.popup.code.open = true; - } - - p.render(); - }); + p.render(); } }, [p.site.id]); @@ -77,35 +70,7 @@ export const EdPopCode = () => {
- {!code.mode && } - {code.mode === "new" && } - {code.mode === "old" && ( -
-
This site still using old code
-
{ - if ( - confirm( - "Old code will not load, are you sure want to upgrade ?" - ) - ) { - code.mode = "new"; - _db.code.create({ - data: { id_site: p.site.id, name: "site" }, - }); - p.ui.popup.code.open = false; - p.render(); - } - }} - className="border border-blue-500 cursor-pointer bg-blue-100 p-2 hover:bg-blue-200" - > - Upgrade to New Code Project -
-
- Warning: old code will not load once upgraded. -
-
- )} +
); @@ -128,69 +93,6 @@ const CodeBody = () => {
- {/* { - local.namePicker = false; - p.ui.popup.code.name = e.name; - p.render(); - }} - /> - } - popoverClassName="bg-white shadow-md" - className={cx( - "flex items-center px-2 w-[200px] hover:bg-blue-50 space-x-1", - "cursor-pointer justify-between border-r " - )} - open={local.namePicker} - onOpenChange={(open) => { - local.namePicker = open; - local.render(); - }} - > -
- -
-
-
*/} - - {/* { - p.ui.popup.code.show_log = !p.ui.popup.code.show_log; - p.render(); - }} - > - {p.ui.popup.code.show_log && ( -
- )} -
-
*/} {p.ui.popup.code.startup_status !== "disabled" && ( = ({ name }) => { - let className = ""; - if (name === "site") { - className = css` - border-left: 4px solid #015fb8; - margin-left: -4px; - height: 18px; - `; - } - if (name === "SSR") { - className = css` - border-left: 4px solid #4dcfe0; - margin-left: -4px; - height: 18px; - `; - } - return ( - <> -
- - {name === "site" ? "Main Site" : name} - - ); -}; -export const CodeNameList: FC<{ - onPick: (mod: { name: string; id: string }) => void; -}> = ({ onPick }) => { - const p = useGlobal(EDGlobal, "EDITOR"); - const local = useLocal( - { - newname: "", - newopen: false, - }, - async () => { - codeName.loading = true; - codeName.list = await _api.code(p.site.id, "list"); - codeName.loading = false; - local.render(); - } - ); - return ( - <> -
- {codeName.list.length === 0 && ( -
- Loading... -
- )} - {codeName.list.map((e) => ( -
{ - onPick(e); - }} - > - -
- ))} - { - if (open) { - local.newname = ""; - } - - local.newopen = open; - local.render(); - }} - content={ - { - if (e.key === "Enter") { - e.currentTarget.blur(); - } - }} - spellCheck={false} - onBlur={async (e) => { - local.newopen = false; - local.render(); - - const nc = await _db.code.create({ - data: { - id_site: p.site.id, - name: local.newname, - }, - }); - - codeName.list.push({ - name: nc.name, - id: nc.id, - }); - local.render(); - }} - onChange={(e) => { - local.newname = e.currentTarget.value - .toLowerCase() - .replace(/\W/gi, "-"); - local.render(); - }} - /> - } - autoFocus - popoverClassName="p-0 shadow-lg" - placement="right" - > -
- - New Code Module -
-
-
- - ); -}; - -export const NameIcon: FC<{ name: string; className?: string }> = ({ - name, - className, -}) => { - const n = name.toLowerCase(); - - let html = ""; - if (n === "site") { - html = iconSite; - } else if (n === "ssr") { - html = iconSSR; - } else { - html = iconModule; - } - - return ( -
- ); -};