From c06f50c21eeb274b5654f4bc19412f210d5b0fdb Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 18 Nov 2025 19:42:15 -0500 Subject: [PATCH] feat: Add basic event fields and collapsible sections to settings page This commit introduces a new component for editing basic event fields and adds collapsible sections to the event settings page for better organization. The new fields include code, conference, name, summary, description, timezone, start/end datetimes, and notes. --- .../events/[event_id]/settings/+page.svelte | 214 ++++++++++-------- .../ae_comp__event_settings_basic_form.svelte | 74 ++++++ 2 files changed, 195 insertions(+), 93 deletions(-) create mode 100644 src/routes/events/[event_id]/settings/ae_comp__event_settings_basic_form.svelte diff --git a/src/routes/events/[event_id]/settings/+page.svelte b/src/routes/events/[event_id]/settings/+page.svelte index ac7e1fb8..4a1cb22a 100644 --- a/src/routes/events/[event_id]/settings/+page.svelte +++ b/src/routes/events/[event_id]/settings/+page.svelte @@ -8,6 +8,7 @@ import E_app_codemirror_v5 from '$lib/app_components/e_app_codemirror_v5.svelte'; import Ae_comp_event_settings_form from './ae_comp__event_settings_form.svelte'; import Ae_comp_event_settings_pres_mgmt_form from './ae_comp__event_settings_pres_mgmt_form.svelte'; + import Ae_comp_event_settings_basic_form from './ae_comp__event_settings_basic_form.svelte'; let event_id = $page.params.event_id; let event_obj = $state(null); @@ -23,11 +24,15 @@ }; }); - async function handle_save(field_name: string, json_data: string | object) { + async function handle_save(field_name: string, data: string | object) { try { - const data_to_save = - typeof json_data === 'string' ? JSON.parse(json_data) : json_data; - const data_kv = { [field_name]: data_to_save }; + let data_kv = {}; + if (field_name === 'basic_fields') { + data_kv = data; + } else { + const data_to_save = typeof data === 'string' ? JSON.parse(data) : data; + data_kv = { [field_name]: data_to_save }; + } await events_func.update_ae_obj__event({ api_cfg: $ae_api, @@ -47,100 +52,123 @@ {#if event_obj}
-
-

General Config (cfg_json)

- handle_save('cfg_json', e.detail)} - /> -
+
+ Basic Info +
+ handle_save('basic_fields', e.detail)} + /> +
+
-
-

Presentation Management (mod_pres_mgmt_json)

- handle_save('mod_pres_mgmt_json', e.detail)} - /> -
+
+ General Config (cfg_json) +
+ handle_save('cfg_json', e.detail)} + /> +
+
-
-

Badges (mod_badges_json)

- { - event_obj.mod_badges_json = e.detail; - }} - /> - -
+
+ Presentation Management (mod_pres_mgmt_json) +
+ handle_save('mod_pres_mgmt_json', e.detail)} + /> +
+
-
-

Abstracts (mod_abstracts_json)

- { - event_obj.mod_abstracts_json = e.detail; - }} - /> - -
+
+ Badges (mod_badges_json) +
+ { + event_obj.mod_badges_json = e.detail; + }} + /> + +
+
-
-

Exhibits (mod_exhibits_json)

- { - event_obj.mod_exhibits_json = e.detail; - }} - /> - -
+
+ Abstracts (mod_abstracts_json) +
+ { + event_obj.mod_abstracts_json = e.detail; + }} + /> + +
+
-
-

Meetings (mod_meetings_json)

- { - event_obj.mod_meetings_json = e.detail; - }} - /> - -
+
+ Exhibits (mod_exhibits_json) +
+ { + event_obj.mod_exhibits_json = e.detail; + }} + /> + +
+
+ +
+ Meetings (mod_meetings_json) +
+ { + event_obj.mod_meetings_json = e.detail; + }} + /> + +
+
{:else}

Loading event data...

diff --git a/src/routes/events/[event_id]/settings/ae_comp__event_settings_basic_form.svelte b/src/routes/events/[event_id]/settings/ae_comp__event_settings_basic_form.svelte new file mode 100644 index 00000000..5cd22e34 --- /dev/null +++ b/src/routes/events/[event_id]/settings/ae_comp__event_settings_basic_form.svelte @@ -0,0 +1,74 @@ + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +