Joomla.submitbutton = function(task) { if (task === 'submissions.exporttask') { var isChecked = jQuery('input[id^=header]:checked').length > 0; if (!isChecked) { var messages = {"error": []}; messages.error.push(Joomla.JText._('RSFP_EXPORT_PLEASE_SELECT')); Joomla.renderMessages(messages); return false; } } Joomla.submitform(task); } function toggleExportCheckboxes() { jQuery('.exportCheckbox').prop('checked', document.getElementById('checkColumns').checked); updateCSVPreview(); } function updateCSVPreview() { var form = document.adminForm; if (form.ExportType.value !== 'csv') { return; } var headersPre = document.getElementById('headersPre'); var rowPre = document.getElementById('rowPre'); var delimiter = form.ExportDelimiter.value; var enclosure = form.ExportFieldEnclosure.value; var totalHeaders = jQuery('.exportCheckbox').length; var headers = []; var previewArray = []; var orderArray = []; var i, header, order; for (i = 1; i <= totalHeaders; i++) { if (document.getElementById('header' + i).checked) { header = document.getElementById('header' + i).value; order = document.getElementsByName('ExportOrder[' + header + ']')[0].value; orderArray.push(order + '_' + header); } } orderArray.sort(function (a,b) { a = a.split('_'); a = a[0]; b = b.split('_'); b = b[0]; return a - b; }); for (i = 0; i < orderArray.length; i++) { header = orderArray[i].split('_'); header = enclosure + header[1] + enclosure; headers.push(header); } headersPre.innerHTML = headers.join(delimiter); headersPre.style.display = form.ExportHeaders.checked ? '' : 'none'; for (i = 1; i <= headers.length; i++) { previewArray.push(enclosure + 'Value ' + i + enclosure); } rowPre.innerHTML = previewArray.join(delimiter); } var exportProcessLastTimeout = 0; function exportProcess(start, limit, total) { var xml = buildXmlHttp(); xml.onreadystatechange = function () { if (xml.readyState == 4) { if (xml.status === 200) { Joomla.removeMessages(); var post = xml.responseText; if (post.indexOf('END') > -1) { document.getElementById('progressBar').style.width = document.getElementById('progressBar').innerHTML = '100%'; document.location = 'index.php?option=com_rsform&task=submissions.export.file&ExportFile=' + document.getElementById('ExportFile').value + '&ExportType=' + document.getElementById('ExportType').value + '&formId=' + document.getElementsByName('formId')[0].value; } else if (post.indexOf('error') > -1) { Joomla.renderMessages({'error': [Joomla.JText._('COM_RSFORM_AN_ERROR_HAS_OCCURRED')]}); } else { var progress = Math.ceil(start * 100 / total); document.getElementById('progressBar').style.width = progress + '%'; document.getElementById('progressBar').innerHTML = progress + '%'; start = start + limit; window.setTimeout(function(start, limit, total){ exportProcess(start, limit, total); }, exportProcessLastTimeout, start, limit, total); } } else { exportProcessLastTimeout += 1000; Joomla.renderMessages({'warning': [Joomla.JText._('COM_RSFORM_AN_ERROR_HAS_OCCURRED_ATTEMPTING_TO_CONTINUE_IN_A_FEW_SECONDS').replace('%d', (exportProcessLastTimeout / 1000))]}); window.setTimeout(function(start, limit, total){ exportProcess(start, limit, total); }, exportProcessLastTimeout, start, limit, total); } } }; xml.open('POST', 'index.php?option=com_rsform&task=submissions.export.process&exportStart=' + start + '&exportLimit=' + limit + '&date=' + Date.now(), true); xml.send(null); }