refactor: standardize event file actions and apply batch formatting

- Updated 'create_event_file_obj_from_hosted_file_async' to use the modern V3 action endpoint.
- Standardized 'prevent_default' helper names in root Event and Archive components.
- Applied batch formatting (printWidth: 80) across the settings and events modules.
This commit is contained in:
Scott Idem
2026-02-06 16:17:31 -05:00
parent 433862ad00
commit d21e2f8e6f
20 changed files with 846 additions and 453 deletions

View File

@@ -30,7 +30,9 @@
// Guard: Only allow administrators in edit mode
if (!$ae_loc.administrator_access || !$ae_loc.edit_mode) {
if (browser) {
alert('Access Denied: Administrative privileges and Edit Mode required.');
alert(
'Access Denied: Administrative privileges and Edit Mode required.'
);
goto(`/events/${event_id}`);
}
}
@@ -53,7 +55,8 @@
if (field_name === 'basic_fields') {
data_kv = data;
} else {
const data_to_save = typeof data === 'string' ? JSON.parse(data) : data;
const data_to_save =
typeof data === 'string' ? JSON.parse(data) : data;
data_kv = { [field_name]: data_to_save };
}
@@ -66,7 +69,9 @@
alert('Settings saved successfully!');
} catch (error) {
console.error('Error saving settings:', error);
alert('Failed to save settings. Please check if the JSON is valid.');
alert(
'Failed to save settings. Please check if the JSON is valid.'
);
}
}
</script>
@@ -76,16 +81,27 @@
{#if event_obj}
<div class="space-y-4">
<details class="details" open>
<summary class="summary font-bold text-error-500">Admin Tools</summary>
<summary class="summary font-bold text-error-500"
>Admin Tools</summary
>
<div class="p-4 space-y-4">
<div class="card p-4 border rounded-md text-center">
<h4 class="h4">Badge Operations</h4>
<div class="flex flex-wrap justify-center gap-2 mt-2">
<button type="button" class="btn btn-primary" onclick={() => (show_create_badge_modal = true)}>
<button
type="button"
class="btn btn-primary"
onclick={() => (show_create_badge_modal = true)}
>
<span class="fas fa-plus mr-2"></span> Add New Badge
</button>
<button type="button" class="btn btn-primary ml-2" onclick={() => (show_upload_badge_modal = true)}>
<span class="fas fa-upload mr-2"></span> Upload Badge List
<button
type="button"
class="btn btn-primary ml-2"
onclick={() => (show_upload_badge_modal = true)}
>
<span class="fas fa-upload mr-2"></span> Upload Badge
List
</button>
</div>
</div>
@@ -103,7 +119,8 @@
href={`/events/${event_id}/badges/print_list?badge_type_code=guest&printed_status=not_printed`}
class="btn variant-filled-secondary"
>
<span class="fas fa-print mr-2"></span> Print Unprinted Guests
<span class="fas fa-print mr-2"></span> Print Unprinted
Guests
</a>
<a
href={`/events/${event_id}/badges/print_list`}
@@ -125,7 +142,8 @@
href={`/events/${event_id}/badges/stats`}
class="btn btn-tertiary"
>
<span class="fas fa-chart-bar mr-2"></span> Badge Printing Stats
<span class="fas fa-chart-bar mr-2"></span> Badge Printing
Stats
</a>
</div>
</div>
@@ -145,9 +163,15 @@
<summary class="summary">General Config (cfg_json)</summary>
<div class="p-4">
<div class="flex justify-end">
<button type="button" class="btn btn-sm" onclick={() => (cfg_json_view = 'form')}>Form</button
<button
type="button"
class="btn btn-sm"
onclick={() => (cfg_json_view = 'form')}>Form</button
>
<button type="button" class="btn btn-sm" onclick={() => (cfg_json_view = 'json')}>JSON</button
<button
type="button"
class="btn btn-sm"
onclick={() => (cfg_json_view = 'json')}>JSON</button
>
</div>
{#if cfg_json_view === 'form'}
@@ -164,10 +188,12 @@
placeholder="JSON config"
class_li="p-1 preset-outlined-success-400-600 shadow-lg rounded-lg"
/>
<button type="button"
<button
type="button"
class="btn preset-tonal-primary"
onclick={() => {
if (event_obj) handle_save('cfg_json', event_obj.cfg_json);
if (event_obj)
handle_save('cfg_json', event_obj.cfg_json);
}}>Save</button
>
{/if}
@@ -175,35 +201,52 @@
</details>
<details class="details">
<summary class="summary">Presentation Management (mod_pres_mgmt_json)</summary>
<summary class="summary"
>Presentation Management (mod_pres_mgmt_json)</summary
>
<div class="p-4">
<div class="flex justify-end">
<button type="button" class="btn btn-sm" onclick={() => (pres_mgmt_json_view = 'form')}
<button
type="button"
class="btn btn-sm"
onclick={() => (pres_mgmt_json_view = 'form')}
>Form</button
>
<button type="button" class="btn btn-sm" onclick={() => (pres_mgmt_json_view = 'json')}
<button
type="button"
class="btn btn-sm"
onclick={() => (pres_mgmt_json_view = 'json')}
>JSON</button
>
</div>
{#if pres_mgmt_json_view === 'form'}
<Ae_comp_event_settings_pres_mgmt_form
bind:mod_pres_mgmt_json={event_obj.mod_pres_mgmt_json}
onsave={(data: any) => handle_save('mod_pres_mgmt_json', data)}
onsave={(data: any) =>
handle_save('mod_pres_mgmt_json', data)}
/>
{:else}
<AE_Comp_Editor_CodeMirror
readonly={false}
content={JSON.stringify(event_obj.mod_pres_mgmt_json, null, 4)}
content={JSON.stringify(
event_obj.mod_pres_mgmt_json,
null,
4
)}
bind:new_content={event_obj.mod_pres_mgmt_json}
show_line_numbers={true}
placeholder="JSON config"
class_li="p-1 preset-outlined-success-400-600 shadow-lg rounded-lg"
/>
<button type="button"
<button
type="button"
class="btn preset-tonal-primary"
onclick={() => {
if (event_obj)
handle_save('mod_pres_mgmt_json', event_obj.mod_pres_mgmt_json);
handle_save(
'mod_pres_mgmt_json',
event_obj.mod_pres_mgmt_json
);
}}>Save</button
>
{/if}
@@ -214,31 +257,45 @@
<summary class="summary">Badges (mod_badges_json)</summary>
<div class="p-4">
<div class="flex justify-end">
<button type="button" class="btn btn-sm" onclick={() => (badges_json_view = 'form')}
>Form</button
<button
type="button"
class="btn btn-sm"
onclick={() => (badges_json_view = 'form')}>Form</button
>
<button type="button" class="btn btn-sm" onclick={() => (badges_json_view = 'json')}
>JSON</button
<button
type="button"
class="btn btn-sm"
onclick={() => (badges_json_view = 'json')}>JSON</button
>
</div>
{#if badges_json_view === 'form'}
<Ae_comp_event_settings_badges_form
bind:mod_badges_json={event_obj.mod_badges_json}
onsave={(data: any) => handle_save('mod_badges_json', data)}
onsave={(data: any) =>
handle_save('mod_badges_json', data)}
/>
{:else}
<AE_Comp_Editor_CodeMirror
readonly={false}
content={JSON.stringify(event_obj.mod_badges_json, null, 4)}
content={JSON.stringify(
event_obj.mod_badges_json,
null,
4
)}
bind:new_content={event_obj.mod_badges_json}
show_line_numbers={true}
placeholder="JSON config"
class_li="p-1 preset-outlined-success-400-600 shadow-lg rounded-lg"
/>
<button type="button"
<button
type="button"
class="btn preset-tonal-primary"
onclick={() => {
if (event_obj) handle_save('mod_badges_json', event_obj.mod_badges_json);
if (event_obj)
handle_save(
'mod_badges_json',
event_obj.mod_badges_json
);
}}>Save</button
>
{/if}
@@ -249,32 +306,47 @@
<summary class="summary">Abstracts (mod_abstracts_json)</summary>
<div class="p-4">
<div class="flex justify-end">
<button type="button" class="btn btn-sm" onclick={() => (abstracts_json_view = 'form')}
<button
type="button"
class="btn btn-sm"
onclick={() => (abstracts_json_view = 'form')}
>Form</button
>
<button type="button" class="btn btn-sm" onclick={() => (abstracts_json_view = 'json')}
<button
type="button"
class="btn btn-sm"
onclick={() => (abstracts_json_view = 'json')}
>JSON</button
>
</div>
{#if abstracts_json_view === 'form'}
<Ae_comp_event_settings_abstracts_form
bind:mod_abstracts_json={event_obj.mod_abstracts_json}
onsave={(data: any) => handle_save('mod_abstracts_json', data)}
onsave={(data: any) =>
handle_save('mod_abstracts_json', data)}
/>
{:else}
<AE_Comp_Editor_CodeMirror
readonly={false}
content={JSON.stringify(event_obj.mod_abstracts_json, null, 4)}
content={JSON.stringify(
event_obj.mod_abstracts_json,
null,
4
)}
bind:new_content={event_obj.mod_abstracts_json}
show_line_numbers={true}
placeholder="JSON config"
class_li="p-1 preset-outlined-success-400-600 shadow-lg rounded-lg"
/>
<button type="button"
<button
type="button"
class="btn preset-tonal-primary"
onclick={() => {
if (event_obj)
handle_save('mod_abstracts_json', event_obj.mod_abstracts_json);
handle_save(
'mod_abstracts_json',
event_obj.mod_abstracts_json
);
}}>Save</button
>
{/if}
@@ -286,16 +358,25 @@
<div class="p-4">
<AE_Comp_Editor_CodeMirror
readonly={false}
content={JSON.stringify(event_obj.mod_exhibits_json, null, 4)}
content={JSON.stringify(
event_obj.mod_exhibits_json,
null,
4
)}
bind:new_content={event_obj.mod_exhibits_json}
show_line_numbers={true}
placeholder="JSON config"
class_li="p-1 preset-outlined-success-400-600 shadow-lg rounded-lg"
/>
<button type="button"
<button
type="button"
class="btn preset-tonal-primary"
onclick={() => {
if (event_obj) handle_save('mod_exhibits_json', event_obj.mod_exhibits_json);
if (event_obj)
handle_save(
'mod_exhibits_json',
event_obj.mod_exhibits_json
);
}}>Save</button
>
</div>
@@ -306,16 +387,25 @@
<div class="p-4">
<AE_Comp_Editor_CodeMirror
readonly={false}
content={JSON.stringify(event_obj.mod_meetings_json, null, 4)}
content={JSON.stringify(
event_obj.mod_meetings_json,
null,
4
)}
bind:new_content={event_obj.mod_meetings_json}
show_line_numbers={true}
placeholder="JSON config"
class_li="p-1 preset-outlined-success-400-600 shadow-lg rounded-lg"
/>
<button type="button"
<button
type="button"
class="btn preset-tonal-primary"
onclick={() => {
if (event_obj) handle_save('mod_meetings_json', event_obj.mod_meetings_json);
if (event_obj)
handle_save(
'mod_meetings_json',
event_obj.mod_meetings_json
);
}}>Save</button
>
</div>
@@ -330,7 +420,7 @@
<div class="card p-4">
<h3 class="h3">Create New Badge</h3>
<Comp_badge_create_form
event_id={event_id}
{event_id}
on:success={() => {
show_create_badge_modal = false;
}}
@@ -345,7 +435,7 @@
<div class="card p-4">
<h3 class="h3">Upload Badges (CSV)</h3>
<Comp_badge_upload_form
event_id={event_id}
{event_id}
on:success={() => {
show_upload_badge_modal = false;
}}

View File

@@ -97,5 +97,7 @@
</div>
</div>
<button type="button" class="btn preset-tonal-primary" onclick={save}>Save</button>
<button type="button" class="btn preset-tonal-primary" onclick={save}
>Save</button
>
</div>

View File

@@ -71,13 +71,21 @@
<div>
<label class="label">
<span>QR Type</span>
<input type="text" class="input" bind:value={mod_badges_json.qr_type} />
<input
type="text"
class="input"
bind:value={mod_badges_json.qr_type}
/>
</label>
</div>
<div>
<label class="label">
<span>Trusted Passcode</span>
<input type="text" class="input" bind:value={mod_badges_json.trusted_passcode} />
<input
type="text"
class="input"
bind:value={mod_badges_json.trusted_passcode}
/>
</label>
</div>
<div>
@@ -92,5 +100,7 @@
</div>
</div>
<button type="button" class="btn preset-tonal-primary" onclick={save}>Save</button>
<button type="button" class="btn preset-tonal-primary" onclick={save}
>Save</button
>
</div>

View File

@@ -28,20 +28,26 @@
</div>
<div>
<label class="label">
<input type="checkbox" class="checkbox" bind:checked={event_obj.conference} />
<input
type="checkbox"
class="checkbox"
bind:checked={event_obj.conference}
/>
<span>Conference</span>
</label>
</div>
<div>
<label class="label">
<span>Summary</span>
<textarea class="textarea" bind:value={event_obj.summary}></textarea>
<textarea class="textarea" bind:value={event_obj.summary}
></textarea>
</label>
</div>
<div>
<label class="label">
<span>Description</span>
<textarea class="textarea" bind:value={event_obj.description}></textarea>
<textarea class="textarea" bind:value={event_obj.description}
></textarea>
</label>
</div>
<div>
@@ -53,13 +59,21 @@
<div>
<label class="label">
<span>Start Datetime</span>
<input type="datetime-local" class="input" bind:value={event_obj.start_datetime} />
<input
type="datetime-local"
class="input"
bind:value={event_obj.start_datetime}
/>
</label>
</div>
<div>
<label class="label">
<span>End Datetime</span>
<input type="datetime-local" class="input" bind:value={event_obj.end_datetime} />
<input
type="datetime-local"
class="input"
bind:value={event_obj.end_datetime}
/>
</label>
</div>
<div>
@@ -68,5 +82,7 @@
<textarea class="textarea" bind:value={event_obj.notes}></textarea>
</label>
</div>
<button type="button" class="btn preset-tonal-primary" onclick={save}>Save</button>
<button type="button" class="btn preset-tonal-primary" onclick={save}
>Save</button
>
</div>

View File

@@ -26,5 +26,7 @@
<input type="text" class="input" bind:value={cfg_json.med_name} />
</label>
</div>
<button type="button" class="btn preset-tonal-primary" onclick={save}>Save</button>
<button type="button" class="btn preset-tonal-primary" onclick={save}
>Save</button
>
</div>

View File

@@ -140,5 +140,7 @@
</div>
</div>
<button type="button" class="btn preset-tonal-primary" onclick={save}>Save</button>
<button type="button" class="btn preset-tonal-primary" onclick={save}
>Save</button
>
</div>