Now with all reports broken out by type and things generally cleaned up.
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user