Update campaign_results.min.js

pull/2990/head
BlkPh0x 2023-10-10 13:10:52 +11:00 committed by GitHub
parent 14bb02f2d2
commit 54781b920b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 73 deletions

View File

@ -291,9 +291,10 @@ function exportAsCleanCSV(scope) {
// Exports campaign results as a CSV file
function exportAsCSV(scope) {
exportAsCSV(scope) {
exportHTML = $("#exportButton").html();
var csvScope = null;
var filename = campaign.name + ' - ' + capitalize(scope) + '.csv';
var filename = campaign.name + " - " + capitalize(scope) + ".csv";
switch (scope) {
case "results":
@ -308,70 +309,24 @@ function exportAsCSV(scope) {
return;
}
// Create an array to hold the CSV data
var csvData = [];
$("#exportButton").html('<i class="fa fa-spinner fa-spin"></i>');
// Add the CSV header
var header = ['Email', 'Email Opened', 'Clicked Link', 'Submitted Data'];
csvData.push(header);
var csvString = Papa.unparse(csvScope, { escapeFormulae: true });
var csvData = new Blob([csvString], { type: "text/csv;charset=utf-8;" });
// Define a helper function to convert boolean to string
function boolToString(value) {
return value ? 'true' : 'false';
}
// Add CSV rows for each entry in csvScope
csvScope.forEach(function (entry) {
var email = entry.email;
var status = entry.status;
// Initialize status flags
var emailOpened = false;
var clickedLink = false;
var submittedData = false;
// Update status flags based on the status value
switch (status) {
case 'Email Opened':
emailOpened = true;
break;
case 'Clicked Link':
emailOpened = true; // If clicked link, email is also opened
clickedLink = true;
break;
case 'Submitted Data':
emailOpened = true; // If submitted data, email is also opened
clickedLink = true; // If submitted data, link is also clicked
submittedData = true;
break;
}
// Add the CSV row
var csvRow = [email, boolToString(emailOpened), boolToString(clickedLink), boolToString(submittedData)];
csvData.push(csvRow);
});
// Convert the CSV data array to a CSV string
var csvString = csvData.map(function (row) {
return row.join(',');
}).join('\n');
// Create a Blob with the CSV string
var csvBlob = new Blob([csvString], {
type: 'text/csv;charset=utf-8;'
});
// Create a download link
var csvURL = window.URL.createObjectURL(csvBlob);
var dlLink = document.createElement('a');
if (navigator.msSaveBlob) {
navigator.msSaveBlob(csvData, filename);
} else {
var csvURL = window.URL.createObjectURL(csvData);
var dlLink = document.createElement("a");
dlLink.href = csvURL;
dlLink.setAttribute('download', filename);
// Trigger the download
dlLink.setAttribute("download", filename);
document.body.appendChild(dlLink);
dlLink.click();
document.body.removeChild(dlLink);
}
// Clean up
window.URL.revokeObjectURL(csvURL);
$("#exportButton").html(exportHTML);
}
function replay(event_idx) {