Wrapping up for the day. Lots of changes.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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') {
|
||||
|
||||
@@ -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'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,11 @@ import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
|
||||
import { events_loc, events_slct, events_trigger } from '$lib/ae_events_stores';
|
||||
import { ae_util } from '$lib/ae_utils';
|
||||
|
||||
$events_loc.qry__enabled = 'enabled';
|
||||
$events_loc.qry__hidden = 'not_hidden';
|
||||
$events_loc.qry__limit = 25;
|
||||
$events_loc.qry__offset = 0;
|
||||
|
||||
onMount(() => {
|
||||
console.log('Events Leads: +layout.svelte');
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
export let data;
|
||||
console.log(`ae_events_leads +page data:`, data);
|
||||
// console.log(`ae_events_leads +page data:`, data);
|
||||
// console.log(`ae_events_leads Data Params:`, data.url.searchParams.get('event_id'));
|
||||
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
@@ -32,7 +32,7 @@ export async function load({ params, parent, url }) { // route
|
||||
// console.log(`load_event_obj = `, load_event_obj);
|
||||
|
||||
let load_event_exhibit_obj_li = events_func.handle_load_ae_obj_li__exhibit({api_cfg: data.ae_api, event_id: event_id, try_cache: false});
|
||||
// console.log(`load_event_exhibit_obj_li = `, load_event_exhibit_obj_li);
|
||||
console.log(`load_event_exhibit_obj_li = `, load_event_exhibit_obj_li);
|
||||
|
||||
// let exhibit_id = data.params.slug;
|
||||
// let load_event_exhibit_obj = events_func.handle_load_ae_obj_id__exhibit({api_cfg: data.ae_api, exhibit_id: exhibit_id, try_cache: false});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
export let data;
|
||||
console.log(`ae_events_leads exhibit [slug] +page.svelte data:`, data);
|
||||
// console.log(`ae_events_leads exhibit [slug] +page.svelte data:`, data);
|
||||
|
||||
import { onMount } from 'svelte';
|
||||
import { goto, invalidate, pushState, replaceState } from '$app/navigation';
|
||||
@@ -22,6 +22,7 @@ import { clipboard, FileDropzone, getModalStore, localStorageStore, ProgressRadi
|
||||
import Element_data_store from '$lib/element_data_store.svelte';
|
||||
import Element_qr_scanner from '$lib/element_qr_scanner.svelte';
|
||||
|
||||
import Leads_list from './leads_list.svelte';
|
||||
import Leads_manage from './leads_manage.svelte';
|
||||
import Leads_payment from './leads_payment.svelte';
|
||||
|
||||
@@ -79,7 +80,7 @@ if ($events_loc.leads.auth_exhibit_kv && $events_loc.leads.auth_exhibit_kv[$even
|
||||
onMount(() => {
|
||||
console.log('Events Leads Exhibit [slug]: +page.svelte');
|
||||
|
||||
console.log(`ae_events_leads exhibit [slug] +page.svelte data:`, data);
|
||||
// console.log(`ae_events_leads exhibit [slug] +page.svelte data:`, data);
|
||||
|
||||
if ($events_slct.exhibit_id) {
|
||||
console.log(`Got an ID. Let's do something!?`);
|
||||
@@ -1105,10 +1106,7 @@ function handle_qr_camera(event) {
|
||||
{:else if $events_loc.leads.tab[$events_slct.exhibit_id] == 'leads'}
|
||||
|
||||
|
||||
<h2 class="h3">Leads for {$event_exhibit_obj.name}</h2>
|
||||
<div class="variant-soft-warning">This section is not currently enabled.</div>
|
||||
<!-- <Leads_list /> -->
|
||||
|
||||
<Leads_list />
|
||||
|
||||
|
||||
<!-- BEGIN Tab: Manage -->
|
||||
|
||||
44
src/routes/events_leads/exhibit/[slug]/+page.ts
Normal file
44
src/routes/events_leads/exhibit/[slug]/+page.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
/** @type {import('./$types').PageLoad} */
|
||||
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
|
||||
export async function load({ params, parent, url }) { // route
|
||||
// console.log(`ae_events_leads +page.ts data.params:`, params);
|
||||
// console.log(`ae_events_leads +page.ts data.route:`, route);
|
||||
// console.log(`ae_events_leads +page.ts data.url:`, url);
|
||||
|
||||
let data = await parent();
|
||||
// console.log(`ae_events_leads +page.ts data:`, data);
|
||||
|
||||
// console.log(`ae_events_leads +page.ts data.ae_loc:`, data.ae_loc);
|
||||
if (data.ae_loc.account_id) {
|
||||
} else {
|
||||
console.log(`The account_id was not found in the data.ae_loc!!!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
data.ae_events_leads_exhibit_slug_page_ts = true;
|
||||
|
||||
// let submenu = {
|
||||
// main: {name: 'Main', href: '/events_leads', access: false},
|
||||
// manage: {name: 'Manage', href: '/events_leads/manage', access: 'administrator', disable: true, hide: true},
|
||||
// review: {name: 'Exhibitor', href: '/events_leads/exhibitor', access: false, disable: false, hide: false},
|
||||
// };
|
||||
// data.submenu = submenu
|
||||
|
||||
// Do not wait on these:
|
||||
// let event_id = url.searchParams.get('event_id');
|
||||
// let load_event_obj = events_func.handle_load_ae_obj_id__event({api_cfg: data.ae_api, event_id: event_id, try_cache: false});
|
||||
// console.log(`load_event_obj = `, load_event_obj);
|
||||
|
||||
let param_slug_event_exhibit_id = data.params.slug;
|
||||
|
||||
let load_event_exhibit_tracking_obj_li = events_func.handle_load_ae_obj_li__exhibit_tracking({api_cfg: data.ae_api, exhibit_id: param_slug_event_exhibit_id, try_cache: false});
|
||||
// console.log(`load_event_exhibit_tracking_obj_li = `, load_event_exhibit_tracking_obj_li);
|
||||
|
||||
// let exhibit_id = data.params.slug;
|
||||
// let load_event_exhibit_obj = events_func.handle_load_ae_obj_id__exhibit({api_cfg: data.ae_api, exhibit_id: exhibit_id, try_cache: false});
|
||||
// console.log(`load_event_exhibit_obj = `, load_event_exhibit_obj);
|
||||
|
||||
return data;
|
||||
}
|
||||
202
src/routes/events_leads/exhibit/[slug]/leads_list.svelte
Normal file
202
src/routes/events_leads/exhibit/[slug]/leads_list.svelte
Normal file
@@ -0,0 +1,202 @@
|
||||
<script lang="ts">
|
||||
// export let data;
|
||||
// console.log(`ae_events_leads exhibit [slug] leads_payment.svelte data:`, data);
|
||||
|
||||
import { ae_util } from '$lib/ae_utils';
|
||||
import { liveQuery } from "dexie";
|
||||
import { db_events } from "$lib/db_events";
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
|
||||
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
|
||||
|
||||
// let param_slug_event_exhibit_id = data.params.slug;
|
||||
|
||||
// let l_event_exhibit_tracking_obj = liveQuery(
|
||||
// () => db_events.exhibit_tracking.get($events_slct.exhibit_tracking_id)
|
||||
// );
|
||||
|
||||
// Version 1: This is the version that works
|
||||
// let event_exhibit_tracking_obj_li = liveQuery(
|
||||
// // () => db_events.exhibits.toArray()
|
||||
// () => db_events.exhibit_tracking
|
||||
// // .where('enable')
|
||||
// // .aboveOrEqual(0)
|
||||
// // .equals(true)
|
||||
// .where('event_exhibit_id_random')
|
||||
// .equals($events_slct.exhibit_id)
|
||||
// // .above(0)
|
||||
// .sortBy('created_on') // Use sortBy() instead of orderBy(). toArray() is also not needed???
|
||||
// // .orderBy('name')
|
||||
// // .offset(10).limit(5)
|
||||
// // .toArray()
|
||||
// );
|
||||
|
||||
// Version 2: This does not work yet
|
||||
let event_exhibit_tracking_obj_li = liveQuery(
|
||||
// () => db_events.exhibits.toArray()
|
||||
() => db_events.exhibit_tracking
|
||||
// .where({event_exhibit_id_random: $events_slct.exhibit_id, enable: true, hide: false})
|
||||
.where({event_exhibit_id_random: $events_slct.exhibit_id})
|
||||
// .where('event_exhibit_id_random').equals($events_slct.exhibit_id)
|
||||
// .and('enable').equals(true)
|
||||
.sortBy('created_on') // Use sortBy() instead of orderBy(). toArray() is also not needed???
|
||||
// .toArray()
|
||||
);
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<section class="tab__leads_list flex flex-col wrap justify-center items-center space-y-4">
|
||||
|
||||
{#if $events_slct.exhibit_id && $events_slct.exhibit_obj}
|
||||
<h2 class="h3">
|
||||
<span class="fas fa-clipboard-list-check"></span>
|
||||
Leads for {$events_slct.exhibit_obj.name}
|
||||
</h2>
|
||||
|
||||
<div class="variant-soft-warning">This section is not currently enabled.</div>
|
||||
|
||||
<button
|
||||
on:click={() => {
|
||||
console.log('Show Hidden Leads');
|
||||
$events_loc.leads.show_hidden = !$events_loc.leads.show_hidden;
|
||||
|
||||
console.log('$events_loc.leads.show_hidden:', $events_loc.leads.show_hidden);
|
||||
|
||||
|
||||
}}
|
||||
class="btn"
|
||||
>
|
||||
{$events_loc.leads.show_hidden ? 'Hide' : 'Show'} Hidden Leads
|
||||
</button>
|
||||
{$events_loc.leads.show_hidden}
|
||||
{#if $event_exhibit_tracking_obj_li}
|
||||
<table class="table table-compact table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="star text-center">Star</th>
|
||||
<th class="rank text-center">Rank</th>
|
||||
<th class="person text-center">Person</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
{#each $event_exhibit_tracking_obj_li as event_exhibit_tracking_obj, index}
|
||||
<!-- flex flex-row justify-center items-center m-auto -->
|
||||
<tr
|
||||
class:hidden={$events_loc.leads.show_hidden}
|
||||
class:test_dim={event_exhibit_tracking_obj.hide}
|
||||
>
|
||||
<td class="star text-center">
|
||||
<!-- <span class="star_container flex flex-col justify-center items-center m-auto"> -->
|
||||
|
||||
<button
|
||||
on:click={async () => {
|
||||
}}
|
||||
class="btn btn-sm variant-soft-tertiary"
|
||||
>
|
||||
{#if event_exhibit_tracking_obj.priority}
|
||||
<span class="fas fa-star" title="stared or priority"></span>
|
||||
{:else}
|
||||
<span class="far fa-star" title="not stared or priority"></span>
|
||||
{/if}
|
||||
</button>
|
||||
<!-- </span> -->
|
||||
</td>
|
||||
|
||||
<!-- text-center align-middle -->
|
||||
<td class="ranking text-center"> <!-- BEGIN: Ranking in table -->
|
||||
<div class="ranking_container flex flex-col lg:flex-row justify-stretch items-center">
|
||||
<button
|
||||
on:click={() => {
|
||||
$events_slct.exhibit_tracking_id = event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
|
||||
db_events.exhibit_tracking.get($events_slct.exhibit_tracking_id)
|
||||
.then((event_exhibit_tracking_obj) => {
|
||||
console.log('event_exhibit_tracking_obj:', event_exhibit_tracking_obj);
|
||||
if (event_exhibit_tracking_obj.sort < 1) {
|
||||
event_exhibit_tracking_obj.sort = 0;
|
||||
} else {
|
||||
event_exhibit_tracking_obj.sort -= 1;
|
||||
}
|
||||
db_events.exhibit_tracking.put(event_exhibit_tracking_obj);
|
||||
});
|
||||
}}
|
||||
disabled={event_exhibit_tracking_obj.sort < 1}
|
||||
class="btn btn-sm variant-soft-secondary"
|
||||
>
|
||||
<span class="fas fa-arrow-up" title="Move up"></span>
|
||||
</button>
|
||||
|
||||
<span class="exhibit_tracking__sort m-0 lg:mx-1">{event_exhibit_tracking_obj.sort ?? ''}</span>
|
||||
|
||||
<button
|
||||
on:click={() => {
|
||||
$events_slct.exhibit_tracking_id = event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
|
||||
db_events.exhibit_tracking.get($events_slct.exhibit_tracking_id)
|
||||
.then((event_exhibit_tracking_obj) => {
|
||||
console.log('event_exhibit_tracking_obj:', event_exhibit_tracking_obj);
|
||||
if (event_exhibit_tracking_obj.sort > 5) {
|
||||
event_exhibit_tracking_obj.sort = 5;
|
||||
} else {
|
||||
event_exhibit_tracking_obj.sort += 1;
|
||||
}
|
||||
db_events.exhibit_tracking.put(event_exhibit_tracking_obj);
|
||||
});
|
||||
}}
|
||||
disabled={event_exhibit_tracking_obj.sort >= 5}
|
||||
class="btn btn-sm variant-soft-secondary"
|
||||
>
|
||||
<span class="fas fa-arrow-down" title="Move down"></span>
|
||||
</button>
|
||||
</div>
|
||||
</td> <!-- END: Ranking in table -->
|
||||
|
||||
<td class="person">
|
||||
<div class="person_container flex flex-col lg:flex-row gap-1 wrap justify-between">
|
||||
<button
|
||||
on:click={() => {
|
||||
}}
|
||||
class="btn btn-sm variant-soft-primary min-w-60 flex flex-row justify-between items-center gap-0.5"
|
||||
>
|
||||
<span class="fas fa-user mx-0.5"></span>
|
||||
<span class="text-lg grow text-center">{event_exhibit_tracking_obj.event_badge_full_name}</span>
|
||||
</button>
|
||||
|
||||
<span class="flex flex-col lg:flex-row gap-0.5 wrap justify-between min-w-60">
|
||||
<span class="text-sm">
|
||||
<span class="fas fa-envelope mx-0.5"></span>
|
||||
<a href="mailto:{event_exhibit_tracking_obj.event_badge_email}" class="font-medium text-blue-600 dark:text-blue-500 hover:underline">
|
||||
{event_exhibit_tracking_obj.event_badge_email}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<span class="text-sm">{event_exhibit_tracking_obj.event_badge_affiliations}</span>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/each}
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
{:else}
|
||||
No leads available to show
|
||||
{$event_exhibit_tracking_obj_li}
|
||||
{/if}
|
||||
|
||||
{:else}
|
||||
Loading...?
|
||||
{/if}
|
||||
|
||||
</section>
|
||||
|
||||
<style lang="postcss">
|
||||
.test_dim {
|
||||
opacity: 0.25;
|
||||
}
|
||||
</style>
|
||||
@@ -119,7 +119,7 @@ export let get_event_exhibit_tracking_export = async function get_event_exhibit_
|
||||
Export Data
|
||||
</h2>
|
||||
|
||||
<p>Use this to export the leads data for this exhibit to an Excel file format. The data can be downloaded at anytime using the export button below.</p>
|
||||
<p>Use this to export the leads data for this exhibit to an Excel file format. The data can be downloaded at anytime using the export button below. The data exported to exhibitors will likely be these fields: given/first name, family/last name, professional title, affiliations, email, city, state/province, country. The exact fields exported sometimes changes slightly from meeting to meeting.</p>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
|
||||
@@ -251,7 +251,7 @@ BTN Do you need to rent tablets as well?
|
||||
|
||||
|
||||
<div class="border-2 border-primary p-2 variant-soft-warning">
|
||||
<p><strong>NOTE:</strong> Your payment will be reviewed and is not reflected immediately on this page for your exhibit. It may take up to 2 business days for this to show as being paid. If you have any questions or concerns please email <a href="mailto:exhibits@oneskyit.com" class="text-blue-500">exhibits@oneskyit.com</a>.</p>
|
||||
<p><strong>NOTE:</strong> Your payment will be reviewed and is not reflected immediately on this page for your exhibit. It may take up to 2 business days for this to show as being paid. If you have any questions or concerns please email <a href="mailto:exhibits@oneskyit.com" class="font-medium text-blue-600 dark:text-blue-500 hover:underline">exhibits@oneskyit.com</a>.</p>
|
||||
</div>
|
||||
|
||||
<!-- <div>
|
||||
|
||||
Reference in New Issue
Block a user