document.addEventListener('DOMContentLoaded', function () { const mappingForm = document.getElementById('mappingForm'); const convertForm = document.getElementById('convertForm'); const inputSample = document.getElementById('inputSample'); const outputSample = document.getElementById('outputSample'); const buildMappingBtn = document.getElementById('buildMappingBtn'); const fullInputFile = document.getElementById('fullInputFile'); const convertBtn = document.getElementById('convertBtn'); const convertSection = document.getElementById('convertSection'); const convertResult = document.getElementById('convertResult'); const mappingFileInput = document.getElementById('mappingFile'); function checkMappingFiles() { buildMappingBtn.disabled = !(inputSample.files.length > 0 && outputSample.files.length > 0); } function checkConvertFile() { convertBtn.disabled = !(fullInputFile.files.length > 0); } inputSample.addEventListener('change', checkMappingFiles); outputSample.addEventListener('change', checkMappingFiles); fullInputFile.addEventListener('change', checkConvertFile); mappingForm.addEventListener('submit', function (e) { e.preventDefault(); buildMappingBtn.disabled = true; buildMappingBtn.innerHTML = ' Building...'; const formData = new FormData(this); formData.append('action', 'build_mapping'); fetch('api.php', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { if (data.success) { alert('Mapping built successfully!'); mappingFileInput.value = data.mapping_file; convertSection.classList.remove('d-none'); } else { let errorMsg = 'Error building mapping: ' + data.error; if(data.details) { errorMsg += '\nDetails: ' + JSON.stringify(data.details); } alert(errorMsg); } }) .catch(error => { console.error('Error:', error); alert('An error occurred while building the mapping.'); }) .finally(() => { buildMappingBtn.disabled = false; buildMappingBtn.innerHTML = 'Build Mapping'; }); }); convertForm.addEventListener('submit', function (e) { e.preventDefault(); convertBtn.disabled = true; convertBtn.innerHTML = ' Converting...'; convertResult.innerHTML = ''; const formData = new FormData(this); formData.append('action', 'convert'); fetch('api.php', { method: 'POST', body: formData }) .then(response => response.json()) .then(data => { if (data.success) { convertResult.innerHTML = `
Conversion successful! Download Converted File
`; } else { convertResult.innerHTML = `
Error: ${data.error}
`; } }) .catch(error => { console.error('Error:', error); convertResult.innerHTML = `
An unexpected error occurred.
`; }) .finally(() => { convertBtn.disabled = false; convertBtn.innerHTML = 'Convert'; }); }); });