Switch Create to NicerForm

This commit is contained in:
Samuel Lorch 2023-11-02 21:48:00 +01:00
parent 9172f56fd9
commit d548464202

View file

@ -7,16 +7,18 @@ const p = getPlugins();
const props = $defineProps<{subsystem: string, entity: string}>(); const props = $defineProps<{subsystem: string, entity: string}>();
const { subsystem, entity } = $(props); const { subsystem, entity } = $(props);
async function create(value: any) { let vm: any = $ref({});
console.debug('value', value);
async function create() {
console.debug('value', vm);
let res: any; let res: any;
if (editTypes[subsystem][entity].idType == 'Number') { if (editTypes[subsystem][entity].idType == 'Number') {
res = await apiCall(`${subsystem }.${entity}.create`, value); res = await apiCall(`${subsystem }.${entity}.create`, vm);
} else { } else {
// TODO find way to only have a name/id field in the form on create and not put it into the value // TODO find way to only have a name/id field in the form on create and not put it into the value
let id = value.name; let id = vm.name;
delete value.name; delete vm.name;
res = await apiCall(`${subsystem }.${entity}.create`, {id: id, thing: value}); res = await apiCall(`${subsystem }.${entity}.create`, {id: id, thing: vm});
} }
if (res.Error === null) { if (res.Error === null) {
@ -32,7 +34,15 @@ async function create(value: any) {
<div v-if="editTypes[subsystem][entity]"> <div v-if="editTypes[subsystem][entity]">
<PageHeader :title="'Create ' + editTypes[subsystem][entity].name"> <PageHeader :title="'Create ' + editTypes[subsystem][entity].name">
</PageHeader> </PageHeader>
<NiceForm class="scroll cl-secondary" :submit="create" :discard="() => $router.go(-1)" :sections="editTypes[subsystem][entity].sections"/> <NicerForm class="scroll cl-secondary" :fields="editTypes[subsystem][entity].fields" v-model="vm"/>
<div class="actions">
<div class="flex-grow"/>
<button @click="create">Submit</button>
<div class="space"/>
<button @click="$router.go(-1)">Discard</button>
<div class="flex-grow"/>
</div>
<p>{{ vm }}</p>
</div> </div>
<div v-else> <div v-else>
<PageHeader title="Error"/> <PageHeader title="Error"/>