in ArticleTemplates/assets/js/bootstraps/campaign.js [40:88]
function initCampaign(campaign) {
if (!navigator.onLine) {
displayOfflineMessage(campaign);
}
campaign.addEventListener('toggle', function() {
resetAndCheckForVideos();
initPositionPoller();
initMpuPoller(0);
});
window.addEventListener('online', hideOfflineMessage.bind(null, campaign));
window.addEventListener('offline', displayOfflineMessage.bind(null, campaign));
let form = campaign.querySelector('form');
let promises = [];
let keys = [];
form.addEventListener('submit', function (e) {
displayWaiting(form);
e.preventDefault();
var data = Array.from(form.elements).reduce(function (o, e) {
if (e.type === 'checkbox') {
if (e.checked) {
o[e.name] = o[e.name] ? o[e.name] + '\n' + e.value : e.value;
}
} else if (e.type === 'file' && e.files.length) {
const filePromise = readFile(e.files[0], campaign, form);
promises.push(filePromise);
keys.push(e.name);
o[e.name] = filePromise;
} else if (e.type === 'hidden' && e.name !== "formId") {
o[e.name] = pageId;
} else if (e.value) {
o[e.name] = e.value;
}
return o;
}, {});
Promise.all(promises).then(results => {
results.map((result, index) => {
data[keys[index]] = result;
})
submit(data, campaign, form);
}).catch(() => {
displayFileError(campaign, form);
})
});
}