Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { parseString } from 'xml2js';
import JSONEditor from 'jsoneditor';
// Import renderer functions
import { renderAdminData } from './renderers/AdminRenderer.js';
import { renderMeasurementResults } from './renderers/MeasurementRenderer.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);
// Create containers for administrative data and measurement results
const adminContainer = document.createElement('div');
adminContainer.id = 'adminData';
appContainer.appendChild(adminContainer);
const measContainer = document.createElement('div');
measContainer.id = 'measurementResults';
appContainer.appendChild(measContainer);
// Load the embedded XML file (for testing) from the data folder
fetch('/data/sin_acceleration_example_dcc_WithExampleConformatyStatment.xml')
.then(response => response.text())
.then(xmlText => {
// Convert XML to JSON using xml2js
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
const adminContainer = document.getElementById('adminData');
adminContainer.innerHTML = '';
const measContainer = document.getElementById('measurementResults');
measContainer.innerHTML = '';
// Render the content if XML has been loaded and converted
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);
}
}
}