Two-step creation: POST event_person first, then event_badge linked to it. Badge create route (event_person parent) pending backend fix — frontend is ready and passing event_person_id + event_badge_template_id in payload. - ae_events__event_person.ts: new create function (nested under event) - ae_events_functions.ts: export create_ae_obj__event_person - ae_comp__badge_create_form.svelte: modal form with live name preview, conditional display-name override, template selector (auto-selects when only one template), badge_type_code_li derived from selected template's badge_type_list JSON, two-step submit status labels - +page.svelte: load template list via liveQuery, wire Create Badge button (edit_mode only), native <dialog> modal with backdrop, remote-first refresh on success Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
import type { key_val } from '$lib/stores/ae_stores';
|
|
import { api } from '$lib/api/api';
|
|
|
|
const ae_promises: key_val = {};
|
|
|
|
/**
|
|
* create_ae_obj__event_person
|
|
* Creates a new event_person record linked to an event.
|
|
* Used as the first step of manual one-off badge creation.
|
|
* The returned event_person_id is then passed to create_ae_obj__event_badge.
|
|
*/
|
|
export async function create_ae_obj__event_person({
|
|
api_cfg,
|
|
event_id,
|
|
data_kv,
|
|
params = {},
|
|
log_lvl = 0
|
|
}: {
|
|
api_cfg: any;
|
|
event_id: string;
|
|
data_kv: key_val;
|
|
params?: key_val;
|
|
log_lvl?: number;
|
|
}): Promise<any | null> {
|
|
if (log_lvl) {
|
|
console.log(
|
|
`*** create_ae_obj__event_person() *** event_id=${event_id}`
|
|
);
|
|
}
|
|
|
|
ae_promises.create__event_person = await api.create_nested_obj({
|
|
api_cfg,
|
|
parent_type: 'event',
|
|
parent_id: event_id,
|
|
child_type: 'event_person',
|
|
fields: data_kv,
|
|
params,
|
|
log_lvl
|
|
});
|
|
|
|
return ae_promises.create__event_person;
|
|
}
|