Changes from before AAPOR
This commit is contained in:
@@ -181,15 +181,15 @@ async function handle_load_ae_obj_li__sponsorship({account_id, try_cache=true})
|
||||
|
||||
if ($ae_loc.administrator_access) {
|
||||
enabled = 'all';
|
||||
hidden = 'all';
|
||||
// hidden = 'all';
|
||||
limit = 150;
|
||||
} else if ($ae_loc.trusted_access) {
|
||||
enabled = 'enabled';
|
||||
hidden = 'not_hidden';
|
||||
// hidden = 'not_hidden';
|
||||
limit = 100;
|
||||
} else {
|
||||
enabled = 'enabled';
|
||||
hidden = 'not_hidden';
|
||||
// hidden = 'not_hidden';
|
||||
limit = 25;
|
||||
}
|
||||
|
||||
@@ -424,6 +424,58 @@ function send_guest_list_email() {
|
||||
body_html: body_html,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function generate_guest_list_csv(ae_obj_li) {
|
||||
console.log(`*** generate_guest_list_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 = ['Sponsor', 'Level', 'POC', 'Guest', 'Title', 'Affiliations', 'ADA', 'Dietary', 'Comments'];
|
||||
csv_data.push(csv_columns);
|
||||
|
||||
for (let i = 0; i < ae_obj_li.length; i++) {
|
||||
if (ae_obj_li[i].guest_li_json && ae_obj_li[i].guest_li_json.length > 0) {
|
||||
for (let j = 0; j < ae_obj_li[i].guest_li_json.length; j++) {
|
||||
let csv_row = [];
|
||||
csv_row.push(ae_obj_li[i].name);
|
||||
csv_row.push(ae_obj_li[i].level_num);
|
||||
csv_row.push(ae_obj_li[i].poc_json.full_name ?? ae_obj_li[i].poc_json.given_name);
|
||||
csv_row.push(ae_obj_li[i].guest_li_json[j].full_name);
|
||||
csv_row.push(ae_obj_li[i].guest_li_json[j].title ?? '');
|
||||
csv_row.push(ae_obj_li[i].guest_li_json[j].affiliations ?? '');
|
||||
csv_row.push(ae_obj_li[i].guest_li_json[j].ada ?? '');
|
||||
csv_row.push(ae_obj_li[i].guest_li_json[j].dietary ?? '');
|
||||
csv_row.push(ae_obj_li[i].guest_li_json[j].comments ?? '');
|
||||
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', `CHOW_2024_Sponsor_Hub_guest_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>
|
||||
|
||||
|
||||
@@ -436,7 +488,9 @@ function send_guest_list_email() {
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<section
|
||||
class="flex flex-col items-center space-y-2"
|
||||
>
|
||||
<button
|
||||
class="btn variant-ghost-primary"
|
||||
on:click={() => {
|
||||
@@ -453,11 +507,14 @@ function send_guest_list_email() {
|
||||
Start Sponsor Submission Form
|
||||
</button>
|
||||
|
||||
|
||||
{#if $ae_loc.trusted_access}
|
||||
<span>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
if (!confirm('Download data exported to an Excel file?')) {
|
||||
if (!confirm('Download all data exported to an Excel file?')) {
|
||||
return false;
|
||||
}
|
||||
ae_promises.download__sponsorships_export = core_func.handle_download_export__obj_type({
|
||||
@@ -473,22 +530,21 @@ function send_guest_list_email() {
|
||||
});
|
||||
|
||||
}}
|
||||
class="btn btn-sm variant-ghost-primary w-48 mb-1 export_data_btn"
|
||||
class="btn btn-sm variant-ghost-warning w-42 mb-1 export_data_btn text-xs"
|
||||
title={`Download sponsorship data for ${$ae_loc.account_name}`}
|
||||
>
|
||||
{#await ae_promises.download__sponsorship_export}
|
||||
<span class="fas fa-spinner fa-spin"></span>
|
||||
<!-- <span class="loading-text">
|
||||
Downloading...
|
||||
</span> -->
|
||||
<span class="fas fa-spinner fa-spin"></span>
|
||||
{:then}
|
||||
<!-- Done? -->
|
||||
{/await}
|
||||
<span class="fas fa-download mx-1"></span> Export Data
|
||||
<span class="fas fa-download mx-1"></span> Export All Data
|
||||
{#if $ae_sess.download && $ae_sess.download.size_total > $ae_sess.download.size_loaded}
|
||||
{$ae_sess.download.percent_completed}%
|
||||
{/if}
|
||||
</button>
|
||||
|
||||
|
||||
<button
|
||||
<!-- <button
|
||||
class="btn btn-sm variant-ghost-primary w-48 mb-1 email_data_btn"
|
||||
on:click={() => {
|
||||
if (!confirm(`Are you sure you want to send this email? To: ${$ae_loc.user_email}?`)) {return false;}
|
||||
@@ -504,7 +560,47 @@ function send_guest_list_email() {
|
||||
>
|
||||
<span class="fas fa-paper-plane mx-1"></span>
|
||||
Email With Guest List
|
||||
</button> -->
|
||||
|
||||
<button
|
||||
class="btn btn-sm variant-ghost-warning w-42 mb-1 generate_csv_btn text-xs"
|
||||
on:click={() => {
|
||||
if (!confirm('Generate and download a CSV file with the guest list?')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
let csv_data = generate_guest_list_csv($slct.sponsorship_obj_li);
|
||||
console.log('CSV Data:', csv_data);
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-file-csv mx-1"></span>
|
||||
Export Guest List CSV
|
||||
</button>
|
||||
<span id="download_csv_container"></span>
|
||||
|
||||
<button
|
||||
on:click={async () => {
|
||||
console.log('Show hidden sponsorships');
|
||||
if ($ae_loc.qry__hidden == 'all') {
|
||||
$ae_loc.qry__hidden = 'not_hidden';
|
||||
$slct_trigger = 'load__sponsorship_obj_li';
|
||||
} else {
|
||||
$ae_loc.qry__hidden = 'all';
|
||||
$slct_trigger = 'load__sponsorship_obj_li';
|
||||
}
|
||||
}}
|
||||
class="btn btn-sm variant-ghost-warning w-42 mb-1 text-xs"
|
||||
>
|
||||
{#if $ae_loc.qry__hidden == 'all'}
|
||||
<span class="fas fa-eye mx-1"></span>
|
||||
Hide Hidden Sponsorships
|
||||
{:else}
|
||||
<span class="fas fa-eye-slash mx-1"></span>
|
||||
Show Hidden Sponsorships
|
||||
{/if}
|
||||
</button>
|
||||
|
||||
</span>
|
||||
{/if}
|
||||
</section>
|
||||
|
||||
|
||||
@@ -2527,19 +2527,43 @@ async function handle_delete_sponsorship_obj({sponsorship_id, hosted_file_id=nul
|
||||
{#if $slct.sponsorship_id}
|
||||
<!-- {#if $ae_loc.trusted_access} -->
|
||||
<span class="ae_actions">
|
||||
{#if $ae_loc.administrator_access}
|
||||
<button
|
||||
on:click={() => {
|
||||
if (!confirm('CURRENTLY DISABLED: Are you sure you want to delete this sponsorship?')) {return false;}
|
||||
// handle_delete_sponsorship_obj({sponsorship_id: $slct.sponsorship_id, method: 'delete'});
|
||||
if (!confirm('Are you sure you want to delete this sponsorship?')) {return false;}
|
||||
|
||||
// $slct.sponsorship_id = null;
|
||||
// $slct.sponsorship_obj = {};
|
||||
handle_delete_sponsorship_obj({sponsorship_id: $slct.sponsorship_id, method: 'delete'});
|
||||
|
||||
$slct.sponsorship_id = null;
|
||||
$slct.sponsorship_obj = {};
|
||||
}}
|
||||
class="btn btn-sm variant-glass-warning mx-1"
|
||||
title="Delete record permanently"
|
||||
>
|
||||
<span class="fas fa-minus mx-1"></span> Delete
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<button
|
||||
on:click={() => {
|
||||
if (!confirm('Are you sure you want to remove this sponsorship?')) {return false;}
|
||||
|
||||
let method = 'hide';
|
||||
if ($ae_loc.trusted_access) {
|
||||
method = 'disable';
|
||||
} else {
|
||||
method = 'hide';
|
||||
}
|
||||
handle_delete_sponsorship_obj({sponsorship_id: $slct.sponsorship_id, method: method});
|
||||
|
||||
$slct.sponsorship_id = null;
|
||||
$slct.sponsorship_obj = {};
|
||||
}}
|
||||
class="btn btn-sm variant-glass-warning mx-1"
|
||||
class:hidden={!$ae_loc.administrator_access}
|
||||
title="CURRENTLY DISABLED: Delete record permanently"
|
||||
title="Remove sponsorship"
|
||||
>
|
||||
<span class="fas fa-minus mx-1"></span> Delete
|
||||
<span class="fas fa-trash mx-1"></span> Remove
|
||||
</button>
|
||||
|
||||
<button
|
||||
|
||||
@@ -41,6 +41,7 @@ onMount(() => {
|
||||
<tr
|
||||
id={`ae_sponsorship_id__${ae_sponsorship_obj.sponsorship_id_random}`}
|
||||
class="ae_object sponsorship_obj"
|
||||
class:fade_50={ae_sponsorship_obj.hide}
|
||||
>
|
||||
|
||||
<td class="ae_options sponsorship_obj__options">
|
||||
|
||||
Reference in New Issue
Block a user