From c0c896d87b06bc289e0f298f6268e5b1ad176fcf Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 17 Jun 2026 15:54:58 -0400 Subject: [PATCH] refactor(data-store): consolidate into one self-contained edit modal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit element_data_store_form.svelte is now the single source of truth for editing data stores — owns the modal, all form fields, change detection, save/delete API calls, and IDB cache update. - element_data_store.svelte: remove ~120 lines of duplicated form/handler code; now delegates to AE_DataStore_Form via bind:open + callbacks - data_stores/+page.svelte: open_edit/open_new are now 2 lines each; remove all draft state, submit_status, handle_save/delete; fix label a11y (wrapping labels on all filter + bulk-rename inputs) Co-Authored-By: Claude Sonnet 4.6 --- src/lib/elements/element_data_store.svelte | 260 +------ .../elements/element_data_store_form.svelte | 733 ++++++++++-------- src/routes/core/data_stores/+page.svelte | 305 ++------ 3 files changed, 478 insertions(+), 820 deletions(-) diff --git a/src/lib/elements/element_data_store.svelte b/src/lib/elements/element_data_store.svelte index 8db69768..d0dce364 100644 --- a/src/lib/elements/element_data_store.svelte +++ b/src/lib/elements/element_data_store.svelte @@ -1,29 +1,14 @@
{/if} - -
{ e.preventDefault(); handle_submit_form(e); }}> -
-
- - -
-
- -
- - -
-
-
- -
-
- Content - {#if draft_type === 'html'} -
- - -
- {/if} -
- - {#if draft_type === 'html'} - {#if html_edit_mode === 'source'} - - {:else} - - {/if} - {:else if draft_type === 'json' || draft_type === 'sql' || draft_type === 'md'} - - {:else} - - {/if} -
- -
- -
- - -
-
- -
+ editing_obj={$lq__ds_obj as ae_DataStore} + show_account_field={false} + show_for_fields={false} + readonly_code={!$ae_loc.manager_access} + on_saved={() => { trigger = 'load__ds__code'; }} + on_deleted={() => { ds_loading_status = 'not found'; }} /> {#if show_view} {#if $lq__ds_obj.type === 'html' && $lq__ds_obj.html} diff --git a/src/lib/elements/element_data_store_form.svelte b/src/lib/elements/element_data_store_form.svelte index 2eb8d782..2796af56 100644 --- a/src/lib/elements/element_data_store_form.svelte +++ b/src/lib/elements/element_data_store_form.svelte @@ -1,357 +1,468 @@ -
+ - -
- - -
+
{ e.preventDefault(); handle_save(); }}> - - - - - {#if show_for_fields} +
-
- {/if} - - -
-
- - Content - {#if draft_type === 'json'} - — parsed as JSON on save; invalid JSON is stored as-is - {:else if draft_type === 'sql'} - — stored as raw SQL string; not executed here - {:else if draft_type === 'md'} - — Markdown; rendered by the display component - {:else if draft_type === 'html'} - — HTML markup; rendered as raw HTML in display - {/if} - - {#if draft_type === 'html'} -
- - -
- {/if} + +
- {#if draft_type === 'html'} - {#if html_edit_mode === 'source'} - - {:else} - - {/if} - {:else if draft_type === 'json' || draft_type === 'sql' || draft_type === 'md'} - - {:else} - - {/if} -
- - -
- - - {#if show_advanced} -
- - -
-

Flags

-
- - - -
-
- - -
- - -
- - -
-
+ +
+
+ + Content + {#if draft_type === 'json'} + — parsed as JSON on save; invalid JSON is stored as-is + {:else if draft_type === 'sql'} + — stored as raw SQL string; not executed here + {:else if draft_type === 'md'} + — Markdown; rendered by the display component + {:else if draft_type === 'html'} + — HTML markup; rendered as raw HTML in display + {/if} + + {#if draft_type === 'html'} +
+ + +
+ {/if} +
+ + {#if draft_type === 'html'} + {#if html_edit_mode === 'source'} + + {:else} + + {/if} + {:else if draft_type === 'json' || draft_type === 'sql' || draft_type === 'md'} + + {:else} + + {/if} +
+ + +
+ + + {#if show_advanced} +
+
+

Flags

+
+ + + +
+
+
+ + +
+ +
+ {/if} +
+ + +
+ {#if !is_new} + + {:else} +
+ {/if} + +
+ + +
+
+ + +
diff --git a/src/routes/core/data_stores/+page.svelte b/src/routes/core/data_stores/+page.svelte index 7675224d..26238a85 100644 --- a/src/routes/core/data_stores/+page.svelte +++ b/src/routes/core/data_stores/+page.svelte @@ -1,8 +1,6 @@