Now with all reports broken out by type and things generally cleaned up.

This commit is contained in:
Scott Idem
2025-09-24 12:18:15 -04:00
parent 6f4f54a0c9
commit 4220a354be
6 changed files with 143 additions and 623 deletions

View File

@@ -69,6 +69,79 @@ $effect(() => {
}
});
function generate_file_export_csv(ae_obj_li) {
console.log(`*** generate_file_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 = [
'File ID', 'Filename', 'Extension', 'Size', 'SHA256 Hash', 'Uploaded On', 'Updated On',
'Session ID', 'Session Code', 'Session Name', 'Session Start Datetime',
'Presentation ID', 'Presentation Name', 'Presentation Time',
'Presenter ID', 'Name', 'Email',
'Download Link',
'Download Link - Session Code'
];
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_file_id);
csv_row.push(ae_obj_li[i].filename ? `"${ae_util.clean_filename(ae_obj_li[i].filename)}"` : '');
csv_row.push(ae_obj_li[i].extension ? ae_obj_li[i].extension : '');
csv_row.push(ae_obj_li[i].file_size ? ae_util.format_bytes(ae_obj_li[i].file_size) : '');
csv_row.push(ae_obj_li[i].hash_sha256.slice(0, 10) + '...');
csv_row.push(ae_obj_li[i].created_on ? ae_util.iso_datetime_formatter(ae_obj_li[i].created_on, 'datetime_iso_12_no_seconds') : '');
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_row.push(ae_obj_li[i].event_session_id ? ae_obj_li[i].event_session_id : '');
csv_row.push(ae_obj_li[i].event_session_code ? 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_id ? ae_obj_li[i].event_presentation_id : '');
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, 'datetime_iso_12_no_seconds') : '');
csv_row.push(ae_obj_li[i].event_presenter_id ? ae_obj_li[i].event_presenter_id : '');
csv_row.push(ae_obj_li[i].event_presenter_full_name ?? '');
csv_row.push(ae_obj_li[i].event_presenter_email ? ae_obj_li[i].event_presenter_email : '');
csv_row.push(encodeURI(`${$ae_api.base_url}/event/file/${ae_obj_li[i]?.event_file_id_random}/download?filename=${ae_util.clean_filename(ae_obj_li[i]?.filename)}&x_no_account_id_token=direct-download`));
csv_row.push(encodeURI(`${$ae_api.base_url}/event/file/${ae_obj_li[i]?.event_file_id_random}/download?filename=${ae_obj_li[i]?.event_session_code}-${ae_util.clean_filename(ae_obj_li[i]?.filename)}&x_no_account_id_token=direct-download`));
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', `file_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;
}
</script>
@@ -122,7 +195,7 @@ $effect(() => {
}}
>
<span class="fas fa-file-csv mx-1"></span>
Export Presenters CSV
Export Files CSV
</button>
<span id="download_csv_container"></span>