diff --git a/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_tbl.svelte b/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_tbl.svelte index c79ed68c..62eb710d 100644 --- a/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_tbl.svelte +++ b/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_tbl.svelte @@ -22,6 +22,7 @@ let { // Imports import { ae_util } from '$lib/ae_utils/ae_utils'; +import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores'; // export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher' // export let link_to_type: string; @@ -49,6 +50,61 @@ if (log_lvl) { // () => db_events.presenters // .bulkGet(event_presenter_id_random_li) // ); + + + +function generate_presenter_export_csv(ae_obj_li) { + console.log(`*** generate_presenter_export_csv() ***`, ae_obj_li); + + // We need to create a list with the column names and then a list of lists with the data. + let csv_data = []; + let csv_columns = ['Presenter ID', 'Name', 'Email', 'Agree', 'Files', 'Code', 'Session', 'Start datetime', 'Presentation', 'Presentation time', 'Updated On']; + csv_data.push(csv_columns); + + for (let i = 0; i < ae_obj_li.length; i++) { + let csv_row = []; + csv_row.push(ae_obj_li[i].event_presenter_id); + csv_row.push(ae_obj_li[i].full_name ?? ae_obj_li[i].given_name); + csv_row.push(ae_obj_li[i].email ?? ''); + csv_row.push(ae_obj_li[i].agree ? 'Yes' : 'No'); + csv_row.push(ae_obj_li[i].file_count ?? '0'); + csv_row.push(ae_obj_li[i].event_session_code ?? ''); + csv_row.push(ae_obj_li[i].event_session_name ?? ''); + csv_row.push(ae_obj_li[i].event_session_start_datetime ? ae_util.iso_datetime_formatter(ae_obj_li[i].event_session_start_datetime, 'datetime_iso_12_no_seconds') : ''); + csv_row.push(ae_obj_li[i].event_presentation_name ?? ''); + csv_row.push(ae_obj_li[i].event_presentation_start_datetime ? ae_util.iso_datetime_formatter(ae_obj_li[i].event_presentation_start_datetime, 'time_12_short') : ''); + csv_row.push(ae_obj_li[i].updated_on ? ae_util.iso_datetime_formatter(ae_obj_li[i].updated_on, 'datetime_iso_12_no_seconds') : ''); + + csv_data.push(csv_row); + } + + console.log('CSV Data:', csv_data); + + let csv_content_str = ''; + csv_data.forEach(function(row) { + csv_content_str += row.join(';'); + csv_content_str += '\n'; + }); + + const blob = new Blob([csv_content_str], { type: 'text/csv;charset=utf-8;' }); + const obj_url = URL.createObjectURL(blob); + + const download_link = document.createElement('a'); + download_link.setAttribute('href', obj_url); + download_link.setAttribute('download', `presenter_list_${ae_util.iso_datetime_formatter()}.csv`); + download_link.setAttribute('style', 'display: none;') + download_link.textContent = 'Download CSV'; + + // document.querySelector('body').appendChild(download_link); + document.getElementById('download_csv_container').appendChild(download_link); + + // Automatically download the file + download_link.click(); + + return csv_data; +} + + @@ -57,23 +113,129 @@ if (log_lvl) { {#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li?.length}
-

- - Results: - +
+

+ + Results: + - {#if $lq__event_presenter_obj_li.length} - + + {$lq__event_presenter_obj_li.length ?? 'None'}× + + {/if} +

+ +
+ + + + + {#if show_session_fields} + + {:else} + {/if} -

+ + + {#if !hide_session_code} + + {:else} + + {/if} + + {#if show_presentation_fields} + + {:else} + + {/if} +
+ + diff --git a/src/routes/events/[event_id]/reports/+page.svelte b/src/routes/events/[event_id]/reports/+page.svelte index a27ec5c4..3f2c32cd 100644 --- a/src/routes/events/[event_id]/reports/+page.svelte +++ b/src/routes/events/[event_id]/reports/+page.svelte @@ -16,7 +16,7 @@ import { ae_util } from '$lib/ae_utils/ae_utils'; // import Element_data_store from '$lib/element_data_store_v2.svelte'; import Comp_event_file_obj_tbl from '../../ae_comp__event_file_obj_tbl.svelte'; import Comp_event_session_obj_tbl from './../../ae_comp__event_session_obj_tbl_wrapper.svelte'; -import Comp_event_presenter_obj_tbl from './../presenter/ae_comp__event_presenter_obj_tbl_wrapper.svelte'; +// import Comp_event_presenter_obj_tbl from './../presenter/ae_comp__event_presenter_obj_tbl_wrapper.svelte'; import { liveQuery } from "dexie"; // import { core_func } from '$lib/ae_core_functions'; @@ -867,6 +867,8 @@ async function handle_qry__event_session( {/if} + + + -{#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_agree' && $events_sess.event_presenter_obj_li} - + Agreed {:else} - Not Agreed {/if} - - - - - - -{/if} + + +{/if} --> -{#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_biography' && $events_sess.event_presenter_obj_li} + -{#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_overview' && $events_sess.event_presenter_obj_li} + @@ -1069,7 +1057,7 @@ async function handle_qry__event_session( log_lvl={log_lvl} > -{/if} +{/if} --> {#if $events_loc.pres_mgmt.show_report == 'recent_files' && event_file_id_random_li} diff --git a/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte b/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte index 02a521bb..2ab0cec2 100644 --- a/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte +++ b/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte @@ -691,7 +691,7 @@ function preventDefault(fn) { preset-tonal-warning preset-outlined-warning-200-800 hover:preset-filled-warning-200-800 transition " - title={`Download sponsorship data for ${$ae_loc.account_name}`} + title={`Download meeting data for ${$ae_loc.account_name}`} > {#await ae_promises.download__events_export}