Newer
Older
import { renderMeasurementResults } from './renderers/MeasurementRenderer.js';
import { renderAdminData } from './renderers/AdminRenderer.js';
// Global configuration
const selectableLanguages = ['en', 'de', 'fr', 'es'];
let selectedLanguage = 'en';
let dccData = null;
export function initApp() {
const appContainer = document.getElementById('app');
// Create language selection dropdown
const langSelect = document.createElement('select');
selectableLanguages.forEach(lang => {
const option = document.createElement('option');
option.value = lang;
option.textContent = lang;
if (lang === selectedLanguage) option.selected = true;
langSelect.appendChild(option);
});
langSelect.addEventListener('change', (e) => {
selectedLanguage = e.target.value;
renderAll();
});
appContainer.appendChild(langSelect);
const adminContainer = document.createElement('div');
adminContainer.id = 'adminData';
appContainer.appendChild(adminContainer);
const measContainer = document.createElement('div');
measContainer.id = 'measurementResults';
appContainer.appendChild(measContainer);
fetch('/data/sin_acceleration_example_dcc_WithExampleConformatyStatment.xml')
.then(response => response.text())
.then(xmlText => {
parseString(xmlText, { explicitArray: false }, (err, result) => {
if (err) {
console.error('Error parsing XML:', err);
return;
}
dccData = result;
renderAll();
});
})
.catch(err => console.error('Error loading XML file:', err));
}
function renderAll() {
// Clear containers
document.getElementById('adminData').innerHTML = '';
document.getElementById('measurementResults').innerHTML = '';
if (dccData && dccData['dcc:digitalCalibrationCertificate']) {
const cert = dccData['dcc:digitalCalibrationCertificate'];
if (cert['dcc:administrativeData']) {
renderAdminData(cert['dcc:administrativeData'], selectedLanguage);
}
if (cert['dcc:measurementResults']) {
renderMeasurementResults(cert['dcc:measurementResults'], selectedLanguage);
}
}
}