From cdb3fdc7dd6d8cdeaf76118c38126e1d42f32703 Mon Sep 17 00:00:00 2001 From: faiztyanirh Date: Mon, 27 Apr 2026 13:24:39 +0700 Subject: [PATCH] initial finish ordertest --- .../ordertest/config/ordertest-form-config.js | 6 +++--- .../order/ordertest/page/create-page.svelte | 20 +++++++++---------- .../order/ordertest/page/edit-page.svelte | 6 +++++- .../reusable/form/order-form-renderer.svelte | 20 ++++++++++++++++++- src/routes/order/ordertest/+page.svelte | 14 ++++++------- 5 files changed, 44 insertions(+), 22 deletions(-) diff --git a/src/lib/components/order/ordertest/config/ordertest-form-config.js b/src/lib/components/order/ordertest/config/ordertest-form-config.js index 197eeb1..e5a1639 100644 --- a/src/lib/components/order/ordertest/config/ordertest-form-config.js +++ b/src/lib/components/order/ordertest/config/ordertest-form-config.js @@ -155,9 +155,9 @@ export function buildOrderTestPayload(mainForm){ let payload = { ...rest, - // Tests: Tests.map(test => ({ - // TestSiteID: test.testSiteID, - // })) + Tests: Tests.map(test => ({ + TestSiteID: test.TestSiteID, + })) } return cleanEmptyStrings(payload) diff --git a/src/lib/components/order/ordertest/page/create-page.svelte b/src/lib/components/order/ordertest/page/create-page.svelte index b6db2cb..06b13c9 100644 --- a/src/lib/components/order/ordertest/page/create-page.svelte +++ b/src/lib/components/order/ordertest/page/create-page.svelte @@ -30,18 +30,18 @@ const payload = buildOrderTestPayload(formState.form); console.log(payload); - // const result = await formState.save(masterDetail.mode, payload); + const result = await formState.save(masterDetail.mode, payload); - // if (result.status === 'success') { - // toast('Order Test Created!'); - // masterDetail?.exitForm(true); - // } else { - // console.error('Failed to save order test'); - // const errorMessages = result.messages ? Object.values(result.messages).join('\n') : 'Failed to save order test'; - // toast.error(errorMessages) - // } + if (result.status === 'success') { + toast('Order Test Created!'); + masterDetail?.exitForm(true); + } else { + console.error('Failed to save order test'); + const errorMessages = result.messages ? Object.values(result.messages).join('\n') : 'Failed to save order test'; + toast.error(errorMessages) + } } -$inspect(formState.errors) + const primaryAction = $derived({ label: 'Save', onClick: handleSave, diff --git a/src/lib/components/order/ordertest/page/edit-page.svelte b/src/lib/components/order/ordertest/page/edit-page.svelte index 2d1a973..5b44e64 100644 --- a/src/lib/components/order/ordertest/page/edit-page.svelte +++ b/src/lib/components/order/ordertest/page/edit-page.svelte @@ -7,6 +7,7 @@ import { buildOrderTestPayload } from "$lib/components/order/ordertest/config/ordertest-form-config"; import { getChangedFields } from "$lib/utils/getChangedFields"; import { orderStore } from "$lib/components/order/ordertest/store/order-store.svelte"; + import { onMount } from "svelte"; let props = $props(); @@ -99,7 +100,10 @@ // idCounter = maxId; // } // }); - $inspect(formState.form) + $inspect(formState.form); + onMount(()=>{ + console.log('mount dr edit page'); + }) diff --git a/src/lib/components/reusable/form/order-form-renderer.svelte b/src/lib/components/reusable/form/order-form-renderer.svelte index b3a66a8..168d876 100644 --- a/src/lib/components/reusable/form/order-form-renderer.svelte +++ b/src/lib/components/reusable/form/order-form-renderer.svelte @@ -14,6 +14,7 @@ import * as Collapsible from "$lib/components/ui/collapsible/index.js"; import { Checkbox } from "$lib/components/ui/checkbox/index.js"; import { untrack } from 'svelte'; + import { onMount } from 'svelte'; let { formState, @@ -78,6 +79,10 @@ ); }); + let activeSelectedCount = $derived( + selectedTests.filter(t => !isPending(t)).length + ); + function toggleTest(test) { const exists = selectedTests.find(t => t.rawItem.TestSiteID === test.rawItem.TestSiteID); if (exists) { @@ -146,6 +151,19 @@ } }); }); + + onMount(() => { + console.log('mount dr render') + if (!formState.form.Tests?.length) return; + + pendingTests = formState.form.Tests.map(test => ({ + value: test.TestSiteID, + label: `${test.TestSiteCode} - ${test.TestSiteName}`, + rawItem: test + })); + + selectedTests = [...pendingTests]; + }); {#snippet Fieldset({ @@ -339,7 +357,7 @@ {/each}
- {selectedTests.length} selected + {activeSelectedCount} selected