Wrapping up for the day. Lots of changes.

This commit is contained in:
Scott Idem
2024-03-19 20:23:42 -04:00
parent 19d2dd630b
commit fbbaa1392b
13 changed files with 563 additions and 43 deletions

View File

@@ -44,15 +44,15 @@ async function handle_load_ae_obj_id__event({api_cfg, event_id, try_cache=false}
// Updated 2024-03-06
async function handle_load_ae_obj_li__badge({api_cfg, event_id, try_cache=true}) {
async function handle_load_ae_obj_li__badge({api_cfg, event_id, params={}, try_cache=true}: {api_cfg: any, event_id: any, params: any, try_cache?: boolean}) {
console.log(`*** handle_load_ae_obj_li__badge() *** event_id=${event_id}`);
let fulltext_search_qry_str = ''; // $events_sess.badges.fulltext_search_qry_str;
let enabled = 'enabled'; // $events_loc.qry_enabled;
let hidden = 'not_hidden'; // $events_loc.qry__hidden;
let limit = 25; // $events_loc.qry__limit;
let offset = 0; // $events_loc.qry__offset;
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden
let limit: number = (params.qry__limit ?? 99); // 99
let offset: number = (params.qry__offset ?? 0); // 0
// if ($ae_loc.administrator_access) {
// enabled = 'all';
@@ -64,7 +64,7 @@ async function handle_load_ae_obj_li__badge({api_cfg, event_id, try_cache=true})
// limit = 50;
// }
let params = {};
// let params = {};
let params_json: key_val = {};
if (fulltext_search_qry_str && fulltext_search_qry_str.length > 2) {
@@ -94,7 +94,7 @@ async function handle_load_ae_obj_li__badge({api_cfg, event_id, try_cache=true})
offset: offset,
params_json: params_json,
params: params,
log_lvl: 2
log_lvl: 1
})
.then(function (badge_obj_li_get_result) {
@@ -157,13 +157,13 @@ async function handle_load_ae_obj_id__exhibit({api_cfg, exhibit_id, try_cache=fa
// Updated 2024-03-06
async function handle_load_ae_obj_li__exhibit({api_cfg, event_id, try_cache=true}) {
async function handle_load_ae_obj_li__exhibit({api_cfg, event_id, params={}, try_cache=true}: {api_cfg: any, event_id: any, params: any, try_cache?: boolean}) {
console.log(`*** handle_load_ae_obj_li__exhibit() *** event_id=${event_id}`);
let enabled = 'enabled'; // $events_loc.qry_enabled;
let hidden = 'not_hidden'; // $events_loc.qry__hidden;
let limit = 50; // $events_loc.qry__limit;
let offset = 0; // $events_loc.qry__offset;
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden
let limit: number = (params.qry__limit ?? 99); // 99
let offset: number = (params.qry__offset ?? 0); // 0
// if ($ae_loc.administrator_access) {
// enabled = 'all';
@@ -175,7 +175,7 @@ async function handle_load_ae_obj_li__exhibit({api_cfg, event_id, try_cache=true
// limit = 50;
// }
let params = {};
// let params = {};
let params_json: key_val = {};
// params_json['and_qry'] = {};
@@ -212,7 +212,7 @@ async function handle_load_ae_obj_li__exhibit({api_cfg, event_id, try_cache=true
offset: offset,
params_json: params_json,
params: params,
log_lvl: 2
log_lvl: 0
})
.then(function (exhibit_obj_li_get_result) {
@@ -283,6 +283,60 @@ async function handle_load_ae_obj_li__exhibit({api_cfg, event_id, try_cache=true
// }
// Updated 2024-03-19
async function handle_load_ae_obj_li__exhibit_tracking({api_cfg, exhibit_id, params={}, try_cache=true}: {api_cfg: any, exhibit_id: any, params: any, try_cache?: boolean}) {
console.log(`*** handle_load_ae_obj_li__exhibit_tracking() *** exhibit_id=${exhibit_id}`);
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
let hidden: string = (params.qry__hidden ?? 'all'); // all, hidden, not_hidden
let limit: number = (params.qry__limit ?? 99); // 99
let offset: number = (params.qry__offset ?? 0); // 0
let params_json: key_val = {};
ae_promises.load__event_exhibit_tracking_obj_li = await api.get_ae_obj_li_for_obj_id_crud({
api_cfg: api_cfg,
obj_type: 'event_exhibit_tracking',
for_obj_type: 'event_exhibit',
for_obj_id: exhibit_id,
use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config.
use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config.
enabled: enabled,
hidden: hidden,
order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC'},
limit: limit,
offset: offset,
params_json: params_json,
params: params,
log_lvl: 1
})
.then(function (exhibit_tracking_obj_li_get_result) {
// console.log('Exhibit tracking list:', exhibit_tracking_obj_li_get_result);
if (exhibit_tracking_obj_li_get_result) {
// $slct.exhibit_tracking_obj_li = exhibit_tracking_obj_li_get_result;
handle_db_save_ae_obj_li__exhibitor_tracking({obj_type: 'event_exhibit_tracking', obj_li: exhibit_tracking_obj_li_get_result});
return exhibit_tracking_obj_li_get_result;
} else {
// $slct.exhibit_tracking_obj_li = [];
return [];
}
})
.catch(function (error) {
console.log('No results returned or failed.', error);
})
.finally(function () {
// console.log('Exhibit tracking list:', exhibit_tracking_obj_li_get_result);
// return exhibit_tracking_obj_li_get_result;
});
console.log('ae_promises.load__event_exhibit_tracking_obj_li:', ae_promises.load__event_exhibit_tracking_obj_li);
return ae_promises.load__event_exhibit_tracking_obj_li;
}
// This function will loop through the badge_obj_li and save each one to the DB.
function handle_db_save_ae_obj_li__badge({obj_type, obj_li}) {
console.log(`*** handle_db_save_ae_obj_li__badge() ***`);
@@ -294,19 +348,60 @@ function handle_db_save_ae_obj_li__badge({obj_type, obj_li}) {
try {
const id_random = await db_events.badges.put({
id_random: obj.event_badge_id_random,
event_badge_id_random: obj.event_badge_id_random,
event_id_random: obj.event_id_random,
pronouns: obj.pronouns,
informal_name: obj.informal_name,
title_names: obj.title_names,
given_name: obj.given_name,
middle_name: obj.middle_name,
family_name: obj.family_name,
designations: obj.designations,
professional_title: obj.professional_title,
professional_title_override: obj.professional_title_override,
full_name: obj.full_name,
full_name_override: obj.full_name_override,
email: obj.email,
email_override: obj.email_override,
affiliations: obj.affiliations,
affiliations_override: obj.affiliations_override,
email: obj.email,
email_override: obj.email_override,
address_line_1: obj.address_line_1,
address_line_2: obj.address_line_2,
address_line_3: obj.address_line_3,
city: obj.city,
country_subdivision_code: obj.country_subdivision_code,
state_province: obj.state_province,
state_province_abb: obj.state_province_abb,
postal_code: obj.postal_code,
country_alpha_2_code: obj.country_alpha_2_code,
country: obj.country,
full_address: obj.full_address,
location: obj.location,
location_override: obj.location_override,
query_str: obj.query_str,
badge_type: obj.badge_type,
badge_type_override: obj.badge_type_override,
badge_type_code: obj.badge_type_code,
badge_type_override: obj.badge_type_override,
badge_type_code_override: obj.badge_type_code_override,
external_event_id: obj.external_event_id,
external_id: obj.external_id,
external_person_id: obj.external_person_id,
enable: obj.enable,
hide: obj.hide,
priority: obj.priority,
sort: obj.sort,
group: obj.group,
notes: obj.notes,
created_on: obj.created_on,
updated_on: obj.updated_on,
});
@@ -325,7 +420,7 @@ function handle_db_save_ae_obj_li__badge({obj_type, obj_li}) {
}
// This function will loop through the event_exhibit_obj_li and save each one to the DB.
function handle_db_save_ae_obj_li__exhibitor({obj_type, obj_li}) {
function handle_db_save_ae_obj_li__exhibitor({obj_type, obj_li=[]}: {obj_type: string, obj_li: any[]}) {
console.log(`*** handle_db_save_ae_obj_li__exhibitor() ***`);
if (obj_li && obj_li.length) {
@@ -335,18 +430,33 @@ function handle_db_save_ae_obj_li__exhibitor({obj_type, obj_li}) {
try {
const id_random = await db_events.exhibits.put({
id_random: obj.event_exhibit_id_random,
event_exhibit_id_random: obj.event_exhibit_id_random,
event_id_random: obj.event_id_random,
code: obj.code,
name: obj.name,
description: obj.description,
staff_passcode: obj.staff_passcode,
data_json: obj.data_json,
leads_api_access: obj.leads_api_access,
leads_custom_questions_json: obj.leads_custom_questions_json,
leads_device_sm_qty: obj.leads_device_sm_qty,
leads_device_lg_qty: obj.leads_device_lg_qty,
license_max: obj.license_max,
license_li_json: obj.license_li_json,
cfg_json: obj.cfg_json,
enable: obj.enable,
hide: obj.hide,
priority: obj.priority,
sort: obj.sort,
group: obj.group,
notes: obj.notes,
created_on: obj.created_on,
updated_on: obj.updated_on,
});
console.log(`Put obj with ID: ${obj.event_exhibit_id_random} or ${id_random}`);
// console.log(`Put obj with ID: ${obj.event_exhibit_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_exhibit_id_random}: ${error}`;
console.log(status);
@@ -360,7 +470,63 @@ function handle_db_save_ae_obj_li__exhibitor({obj_type, obj_li}) {
}
}
// This function will loop through the event_exhibit_tracking_obj_li and save each one to the DB.
function handle_db_save_ae_obj_li__exhibitor_tracking({obj_type, obj_li}) {
console.log(`*** handle_db_save_ae_obj_li__exhibitor_tracking() ***`);
if (obj_li && obj_li.length) {
obj_li.forEach(async function (obj) {
// console.log(`ae_obj ${obj_type}:`, obj);
try {
const id_random = await db_events.exhibit_tracking.put({
id_random: obj.event_exhibit_tracking_id_random,
event_exhibit_tracking_id_random: obj.event_exhibit_tracking_id_random,
event_exhibit_id_random: obj.event_exhibit_id_random,
event_badge_id_random: obj.event_badge_id_random,
event_person_id_random: obj.event_person_id_random,
exhibitor_notes: obj.exhibitor_notes,
responses_json: obj.responses_json,
data_json: obj.data_json,
event_exhibit_name: obj.event_exhibit_name,
event_badge_title_names: obj.event_badge_title_names,
event_badge_given_name: obj.event_badge_given_name,
event_badge_family_name: obj.event_badge_family_name,
event_badge_designations: obj.event_badge_designations,
event_badge_full_name: obj.event_badge_full_name,
event_badge_affiliations: obj.event_badge_affiliations,
event_badge_email: obj.event_badge_email,
event_badge_location: obj.event_badge_location,
enable: obj.enable,
hide: obj.hide,
priority: obj.priority,
sort: obj.sort,
group: obj.group,
notes: obj.notes,
created_on: obj.created_on,
updated_on: obj.updated_on,
});
console.log(`Put obj with ID: ${obj.event_exhibit_tracking_id_random} or ${id_random}`);
} catch (error) {
let status = `Failed to put ${obj.event_exhibit_tracking_id_random}: ${error}`;
console.log(status);
}
// const id_random = await db_events.exhibit_tracking.put(obj);
// console.log(`Put obj with ID: ${obj.event_exhibit_tracking_id_random}`);
});
return true;
}
}
let export_obj = {
@@ -368,5 +534,6 @@ let export_obj = {
handle_load_ae_obj_li__badge: handle_load_ae_obj_li__badge,
handle_load_ae_obj_id__exhibit: handle_load_ae_obj_id__exhibit,
handle_load_ae_obj_li__exhibit: handle_load_ae_obj_li__exhibit,
handle_load_ae_obj_li__exhibit_tracking: handle_load_ae_obj_li__exhibit_tracking,
};
export let events_func = export_obj;

View File

@@ -48,6 +48,8 @@ let events_local_data_struct: key_val = {
auto_view: true,
show_hidden: false, // These are hidden (archived) leads so the list is not as long.
// The entered_passcode is the exhibit booths shared passcode for staff. This is used to initially access the lead retrieval service.
entered_passcode: null,
@@ -99,6 +101,11 @@ let events_session_data_struct: key_val = {
'ds_loaded': {
},
'qry__enabled': 'enabled', // all, disabled, enabled
'qry__hidden': 'not_hidden', // all, hidden, not_hidden
'qry__limit': 20,
'qry__offset': 0,
// Badge Printing
'badges': {
'fulltext_search_qry_str': null,

View File

@@ -59,6 +59,11 @@ export let ae_app_local_data_struct: key_val = {
'authenticated_access': false,
'anonymous_access': true,
'qry__enabled': 'enabled', // all, disabled, enabled
'qry__hidden': 'not_hidden', // all, hidden, not_hidden
'qry__limit': 20,
'qry__offset': 0,
'ds': {},
'hub': {
'show_element__cfg': true,

View File

@@ -548,6 +548,8 @@ export let get_ae_obj_id_crud = async function get_ae_obj_id_crud({
endpoint = `/crud/event/device/${obj_id}`;
} else if (obj_type == 'event_exhibit') {
endpoint = `/crud/event/exhibit/${obj_id}`;
} else if (obj_type == 'event_exhibit_tracking') {
endpoint = `/crud/event/exhibit/tracking/${obj_id}`;
} else if (obj_type == 'event_file') {
endpoint = `/crud/event/file/${obj_id}`;
} else if (obj_type == 'event_location') {
@@ -687,6 +689,8 @@ export let get_ae_obj_li_for_obj_id_crud = async function get_ae_obj_li_for_obj_
endpoint = `/crud/event/device/list`;
} else if (obj_type == 'event_exhibit') {
endpoint = `/crud/event/exhibit/list`;
} else if (obj_type == 'event_exhibit_tracking') {
endpoint = `/crud/event/exhibit/tracking/list`;
} else if (obj_type == 'event_file') {
endpoint = `/crud/event/file/list`;
} else if (obj_type == 'event_location') {
@@ -865,6 +869,8 @@ export let create_ae_obj_crud = async function create_ae_obj_crud({api_cfg, obj_
endpoint = `/crud/event/device`;
} else if (obj_type == 'event_exhibit') {
endpoint = `/crud/event/exhibit`;
} else if (obj_type == 'event_exhibit_tracking') {
endpoint = `/crud/event/exhibit/tracking`;
} else if (obj_type == 'event_file') {
endpoint = `/crud/event/file`;
} else if (obj_type == 'event_location') {
@@ -1010,6 +1016,8 @@ export let update_ae_obj_id_crud = async function update_ae_obj_id_crud({api_cfg
endpoint = `/crud/event/device/${obj_id}`;
} else if (obj_type == 'event_exhibit') {
endpoint = `/crud/event/exhibit/${obj_id}`;
} else if (obj_type == 'event_exhibit_tracking') {
endpoint = `/crud/event/exhibit/tracking/${obj_id}`;
} else if (obj_type == 'event_file') {
endpoint = `/crud/event/file/${obj_id}`;
} else if (obj_type == 'event_location') {
@@ -1177,6 +1185,8 @@ export let delete_ae_obj_id_crud = async function delete_ae_obj_id_crud({api_cfg
endpoint = `/crud/event/device/${obj_id}`;
} else if (obj_type == 'event_exhibit') {
endpoint = `/crud/event/exhibit/${obj_id}`;
} else if (obj_type == 'event_exhibit_tracking') {
endpoint = `/crud/event/exhibit/tracking/${obj_id}`;
} else if (obj_type == 'event_file') {
endpoint = `/crud/event/file/${obj_id}`;
} else if (obj_type == 'event_location') {

View File

@@ -4,13 +4,44 @@ export interface Badge {
// id?: number;
id_random: string;
event_badge_id_random: string;
event_id_random: string;
pronouns: null|string;
informal_name: null|string;
title_names: null|string;
given_name: string;
middle_name: null|string;
family_name: null|string;
designations: null|string;
professional_title: null|string;
professional_title_override: null|string;
full_name: string;
full_name_override: null|string;
email: string;
email_override: null|string;
affiliations: string;
affiliations_override: null|string;
email: string;
email_override: null|string;
address_line_1: null|string;
address_line_2: null|string;
address_line_3: null|string;
city: null|string;
country_subdivision_code: null|string;
state_province: null|string;
state_province_abb: null|string;
postal_code: null|string;
country_alpha_2_code: null|string;
country: null|string;
full_address: null|string;
location: null|string;
location_override: null|string;
query_str: null|string;
badge_type: string;
badge_type_code: string;
badge_type_code_override: null|string;
@@ -18,21 +49,30 @@ export interface Badge {
external_event_id: string;
external_id: string;
external_person_id: string;
enable: null|boolean;
hide: null|boolean;
priority: null|boolean
sort: null|number;
group: null|string;
notes: null|string;
created_on: Date;
updated_on: Date;
updated_on: null|Date;
}
export interface Exhibit {
// id?: number;
id_random: string;
event_exhibit_id_random: string;
event_id_random: string;
code: string;
name: string;
tagline: null|string;
// tagline: null|string;
description: null|string;
staff_passcode: null
data_json: null|string;
leads_api_access: null|boolean;
leads_custom_questions_json: null|string;
leads_device_sm_qty: null|number;
@@ -40,13 +80,53 @@ export interface Exhibit {
license_max: number;
license_li_json: null|string;
cfg_json: string;
enable: boolean;
hide: boolean;
priority: boolean
sort: number;
group: string;
enable: null|boolean;
hide: null|boolean;
priority: null|boolean
sort: null|number;
group: null|string;
notes: null|string;
created_on: Date;
updated_on: Date;
updated_on: null|Date;
}
export interface Exhibit_tracking {
// id?: number;
id_random: string;
event_exhibit_tracking_id_random: string;
event_exhibit_id_random: string;
event_badge_id_random: string;
event_person_id_random: null|string; // Is this needed?
exhibitor_notes: null|string;
responses_json: null|string;
data_json: null|string;
event_exhibit_name: string; // Extra field for convenience
event_badge_title_names: null|string;
event_badge_given_name: string;
event_badge_family_name: null|string;
event_badge_designations: null|string;
event_badge_full_name: string;
event_badge_affiliations: null|string;
event_badge_email: null|string;
event_badge_location: null|string;
enable: null|boolean;
hide: null|boolean;
priority: null|boolean
sort: null|number;
group: null|string;
notes: null|string;
created_on: Date;
updated_on: null|Date;
}
export class MySubClassedDexie extends Dexie {
@@ -54,14 +134,16 @@ export class MySubClassedDexie extends Dexie {
// We just tell the typing system this is the case
badges!: Table<Badge>;
exhibits!: Table<Exhibit>;
exhibit_tracking!: Table<Exhibit_tracking>;
constructor() {
super('ae_events_db');
this.version(1).stores({
// badges: '++id, full_name, email' // Primary key and indexed props
badges: 'id_random, full_name, full_name_override, email, email_override, affiliations, affiliations_override, badge_type, badge_type_code, badge_type_code_override, badge_type_override, external_event_id, external_id, external_person_id, created_on, updated_on', // Primary key and indexed props
exhibits: 'id_random, code, name, description, staff_passcode, data_json, license_max, license_li_json, cfg_json, created_on, updated_on',
});
// badges: '++id, full_name, email' // Primary key and indexed props
badges: 'id_random, event_badge_id_random, full_name, full_name_override, email, email_override, affiliations, affiliations_override, badge_type, badge_type_code, badge_type_code_override, badge_type_override, external_event_id, external_id, external_person_id, enable, hide, priority, sort, group, notes, created_on, updated_on',
exhibits: 'id_random, event_exhibit_id_random, code, name, description, staff_passcode, data_json, license_max, license_li_json, cfg_json, enable, hide, priority, sort, group, notes, created_on, updated_on',
exhibit_tracking: 'id_random, event_exhibit_tracking_id_random, event_exhibit_id_random, event_badge_id_random, event_person_id_random, exhibitor_notes, responses_json, data_json, event_badge_full_name, event_badge_email, enable, hide, priority, sort, group, notes, created_on, updated_on'
});
}
}