Standardize Core UI forms and unify schemas for V3 API compatibility

- Implement new Svelte 5 Person, Address, and Contact form components with surgical payload logic.
- Refactor core routes (People, Addresses, Contacts) to support unified Create/Edit workflows.
- Update ae_types.ts, db_core.ts, and db_journals.ts to align with V3 backend object models.
- Fix type safety issues in Journal history views and refine metadata display.
- Migrate person core functions to the newer ae_core__person module.
This commit is contained in:
Scott Idem
2026-01-09 15:14:36 -05:00
parent 8e205b2db9
commit 5056d5d8f0
18 changed files with 1276 additions and 944 deletions

View File

@@ -16,24 +16,6 @@
</script>
<section class="journal-metadata w-full space-y-4">
<!-- Original Date/Time Info -->
{#if entry.original_datetime || entry.original_timezone}
<div class="flex flex-col sm:flex-row gap-4 p-3 bg-surface-500/5 rounded-lg border border-surface-500/20">
<div class="flex flex-col">
<span class="text-xs font-semibold uppercase tracking-wider text-surface-500">Original Date/Time</span>
<span class="text-sm font-medium">
{entry.original_datetime ? ae_util.iso_datetime_formatter(entry.original_datetime, 'datetime_12_long') : '--'}
</span>
</div>
{#if entry.original_timezone}
<div class="flex flex-col">
<span class="text-xs font-semibold uppercase tracking-wider text-surface-500">Timezone</span>
<span class="text-sm font-medium">{entry.original_timezone}</span>
</div>
{/if}
</div>
{/if}
<!-- System Timestamps -->
<div class="flex flex-col sm:flex-row justify-between items-center gap-2 px-1 text-xs text-surface-500">
<div class="flex gap-4">

View File

@@ -20,6 +20,7 @@
journals_slct
} from '$lib/ae_journals/ae_journals_stores';
import { journals_func } from '$lib/ae_journals/ae_journals_functions';
import type { ae_JournalEntry } from '$lib/types/ae_types';
import Journal_entry_obj_qry from './../ae_comp__journal_entry_obj_qry.svelte';
@@ -292,7 +293,7 @@
Entries...
</option>
<!-- loop through each key value -->
{#each Object.entries($journals_loc.entry_view_history_kv).reverse() as [journal_entry_id, journal_entry_obj]}
{#each Object.entries($journals_loc.entry_view_history_kv as Record<string, ae_JournalEntry>).reverse() as [journal_entry_id, journal_entry_obj]}
<option value={journal_entry_obj.id}>
{(journal_entry_obj?.name || journal_entry_obj?.id) ?? 'NONE'}
</option>
@@ -428,11 +429,3 @@
{@render children?.()}
<!-- </div> -->
</section>
<!-- {#if $journals_sess.show__modal_edit__journal_obj}
<Journal_obj_id_edit
log_lvl={log_lvl}
lq__journal_obj={lq__journal_obj}
show={$journals_sess.show__modal_edit__journal_obj}
/>
{/if} -->