Migrate Event Badges to V3 and implement Core Management pages

- Completed V3 migration for Event Badge CRUD operations
- Implemented User module V3 logic and editable fields
- Created management routes for Accounts, Sites, Users, and Lookups
- Updated Site Domain logic to use 'fqdn' and show 'access_key'
- Modernized Core Dashboard with navigation cards
- Restored Dexie User table definition
This commit is contained in:
Scott Idem
2026-01-06 13:38:47 -05:00
parent 1b318eeb8b
commit 00e80af3a1
29 changed files with 3800 additions and 218 deletions

View File

@@ -0,0 +1,46 @@
export const editable_fields__event_badge = [
'event_badge_template_id',
'event_badge_template_id_random',
'pronouns',
'informal_name',
'title_names',
'given_name',
'middle_name',
'family_name',
'designations',
'professional_title',
'professional_title_override',
'full_name_override',
'affiliations',
'affiliations_override',
'email',
'email_override',
'address_line_1',
'address_line_2',
'address_line_3',
'city',
'country_subdivision_code',
'state_province',
'state_province_abb',
'postal_code',
'country_alpha_2_code',
'country',
'location_override',
'badge_type',
'badge_type_code',
'badge_type_override',
'badge_type_code_override',
'external_event_id',
'external_id',
'external_person_id',
'alert',
'enable',
'hide',
'priority',
'sort',
'group',
'notes',
'print_count',
'print_first_datetime',
'print_last_datetime'
];

View File

@@ -121,7 +121,7 @@ export async function load_ae_obj_li__event_badge({
ae_promises.load__event_badge_obj_li = await api
.get_ae_obj_li_v3({
api_cfg: api_cfg,
api_cfg,
obj_type: 'event_badge',
for_obj_type: 'event',
for_obj_id: event_id,
@@ -182,7 +182,7 @@ export async function load_ae_obj_li__event_badge({
return ae_promises.load__event_badge_obj_li;
}
// Updated 2025-10-06
// Updated 2026-01-06
export async function create_ae_obj__event_badge({
api_cfg,
event_id,
@@ -201,49 +201,39 @@ export async function create_ae_obj__event_badge({
if (log_lvl) {
console.log(`*** create_ae_obj__event_badge() *** event_id=${event_id}`);
}
ae_promises.create__event_badge = await api
.create_ae_obj_crud({
api_cfg,
obj_type: 'event_badge',
fields: {
event_id_random: event_id,
...data_kv
},
key: api_cfg.api_crud_super_key,
params,
return_obj: true,
const result = await api.create_nested_obj_v3({
api_cfg,
parent_type: 'event',
parent_id: event_id,
child_type: 'event_badge',
fields: data_kv,
params,
log_lvl
});
if (result && try_cache) {
const processed_obj_li = await process_ae_obj__event_badge_props({
obj_li: [result],
event_id,
log_lvl
})
.then(async function (event_badge_obj_create_result) {
if (event_badge_obj_create_result) {
if (try_cache) {
const processed_obj_li = await process_ae_obj__event_badge_props({
obj_li: [event_badge_obj_create_result],
event_id,
log_lvl
});
db_save_ae_obj_li__ae_obj({
db_instance: db_events,
table_name: 'badge',
obj_li: processed_obj_li,
properties_to_save,
log_lvl
});
}
return event_badge_obj_create_result;
} else {
return null;
}
})
.catch(function (error: any) {
console.log('No results returned or failed.', error);
});
return ae_promises.create__event_badge;
await db_save_ae_obj_li__ae_obj({
db_instance: db_events,
table_name: 'badge',
obj_li: processed_obj_li,
properties_to_save,
log_lvl
});
}
return result;
}
// Updated 2025-10-06
// Updated 2026-01-06
export async function delete_ae_obj_id__event_badge({
api_cfg,
event_id,
event_badge_id,
method = 'delete',
params = {},
@@ -251,8 +241,9 @@ export async function delete_ae_obj_id__event_badge({
log_lvl = 0
}: {
api_cfg: any;
event_id: string;
event_badge_id: string;
method?: string;
method?: 'delete' | 'soft_delete' | 'disable' | 'hide';
params?: key_val;
try_cache?: boolean;
log_lvl?: number;
@@ -260,35 +251,29 @@ export async function delete_ae_obj_id__event_badge({
if (log_lvl) {
console.log(`*** delete_ae_obj_id__event_badge() *** event_badge_id=${event_badge_id}`);
}
ae_promises.delete__event_badge_obj = await api
.delete_ae_obj_id_crud({
api_cfg,
obj_type: 'event_badge',
obj_id: event_badge_id,
key: api_cfg.api_crud_super_key,
params,
method,
log_lvl
})
.catch(function (error: any) {
console.log('No results returned or failed.', error);
})
.finally(function () {
if (try_cache) {
if (log_lvl) {
console.log(
`Attempting to remove IDB entry for event_badge_id=${event_badge_id}`
);
}
db_events.badge.delete(event_badge_id);
}
});
return ae_promises.delete__event_badge_obj;
const result = await api.delete_nested_ae_obj_v3({
api_cfg,
parent_type: 'event',
parent_id: event_id,
child_type: 'event_badge',
child_id: event_badge_id,
method,
params,
log_lvl
});
if (try_cache) {
await db_events.badge.delete(event_badge_id);
}
return result;
}
// Updated 2025-10-06
// Updated 2026-01-06
export async function update_ae_obj__event_badge({
api_cfg,
event_id,
event_badge_id,
data_kv,
params = {},
@@ -296,6 +281,7 @@ export async function update_ae_obj__event_badge({
log_lvl = 0
}: {
api_cfg: any;
event_id: string;
event_badge_id: string;
data_kv: key_val;
params?: key_val;
@@ -305,41 +291,34 @@ export async function update_ae_obj__event_badge({
if (log_lvl) {
console.log(`*** update_ae_obj__event_badge() *** event_badge_id=${event_badge_id}`);
}
ae_promises.update__event_badge_obj = await api
.update_ae_obj_id_crud({
api_cfg,
obj_type: 'event_badge',
obj_id: event_badge_id,
fields: data_kv,
key: api_cfg.api_crud_super_key,
params,
return_obj: true,
const result = await api.update_nested_obj_v3({
api_cfg,
parent_type: 'event',
parent_id: event_id,
child_type: 'event_badge',
child_id: event_badge_id,
fields: data_kv,
params,
log_lvl
});
if (result && try_cache) {
const processed_obj_li = await process_ae_obj__event_badge_props({
obj_li: [result],
event_id,
log_lvl
})
.then(async function (event_badge_obj_update_result) {
if (event_badge_obj_update_result) {
if (try_cache) {
const processed_obj_li = await process_ae_obj__event_badge_props({
obj_li: [event_badge_obj_update_result],
log_lvl
});
db_save_ae_obj_li__ae_obj({
db_instance: db_events,
table_name: 'badge',
obj_li: processed_obj_li,
properties_to_save,
log_lvl
});
}
return event_badge_obj_update_result;
} else {
return null;
}
})
.catch(function (error: any) {
console.log('No results returned or failed.', error);
});
return ae_promises.update__event_badge_obj;
await db_save_ae_obj_li__ae_obj({
db_instance: db_events,
table_name: 'badge',
obj_li: processed_obj_li,
properties_to_save,
log_lvl
});
}
return result;
}
// Is this needed?
@@ -751,4 +730,4 @@ export async function process_ae_obj__event_badge_props({
return obj;
}
});
}
}