';
tbody.appendChild(tr);
if (!A.state.formData.scores[nr]) A.state.formData.scores[nr] = { dwl: dwlScore, bal: balScore, opm: '' };
if (!A.state.formData.photos[nr]) A.state.formData.photos[nr] = [];
var dwlSel = tr.querySelector('select[data-type="dwl"]');
if (dwlScore) dwlSel.className = D.scoreClass(dwlScore);
var balSel = tr.querySelector('select[data-type="bal"]');
if (balScore) balSel.className = D.scoreClass(balScore);
});
wireAssessmentEvents();
};
A.buildOverwegAssessment = function (scoreElements) {
var tbody = document.getElementById('assessmentBody');
tbody.innerHTML = '';
scoreElements.forEach((el, idx) => {
var nr = idx + 1;
var locatie = el.querySelector('LOCATIE').textContent.trim();
var score = el.querySelector('SCORE').textContent.trim();
var tr = document.createElement('tr');
tr.dataset.nr = nr;
tr.innerHTML =
'
' + locatie + '
' +
'
' +
'
' + photoButton(nr, locatie) + '
' +
'
';
tbody.appendChild(tr);
if (!A.state.formData.scores[nr]) A.state.formData.scores[nr] = { score: score, opm: '' };
if (!A.state.formData.photos[nr]) A.state.formData.photos[nr] = [];
var sel = tr.querySelector('select[data-type="score"]');
if (score) sel.className = D.scoreClass(score);
});
wireAssessmentEvents();
};
A.buildSpoorAssessment = function (scoreElements) {
var tbody = document.getElementById('assessmentBody');
tbody.innerHTML = '';
scoreElements.forEach(el => {
var nr = parseInt(el.querySelector('NR').textContent.trim());
var kmVan = el.querySelector('KM_VAN').textContent.trim();
var kmTot = el.querySelector('KM_TOT').textContent.trim();
var lengte = el.querySelector('LENGTE').textContent.trim();
var score = el.querySelector('SCORE').textContent.trim();
var techJaar = el.querySelector('TECH_JAAR') ? el.querySelector('TECH_JAAR').textContent.trim() : '';
var inspJaar = el.querySelector('INSP_JAAR') ? el.querySelector('INSP_JAAR').textContent.trim() : '';
var tr = document.createElement('tr');
tr.dataset.nr = nr;
tr.innerHTML =
'
' + nr + '
' +
'
' + kmVan + '
' +
'
' + kmTot + '
' +
'
' + lengte + ' m
' +
'
' +
'
' + photoButton(nr, 'Segment ' + nr) + '
' +
'
';
tbody.appendChild(tr);
if (!A.state.formData.scores[nr]) A.state.formData.scores[nr] = { score: score, kmVan: kmVan, kmTot: kmTot, lengte: lengte, techJaar: techJaar, inspJaar: inspJaar, opm: '' };
if (!A.state.formData.photos[nr]) A.state.formData.photos[nr] = [];
var sel = tr.querySelector('select[data-type="score"]');
if (score) sel.className = D.scoreClass(score);
});
wireAssessmentEvents();
};
A.buildAssessmentForType = function (type, scoreElements) {
if (D.usesDwlBal(type)) A.buildWisselAssessment(scoreElements, type);
else if (type === D.TYPE_OVERWEG) A.buildOverwegAssessment(scoreElements);
else if (type === D.TYPE_SPOOR) A.buildSpoorAssessment(scoreElements);
};
function onScoreChange(sel) {
var nr = parseInt(sel.dataset.nr);
var field = sel.dataset.type;
var val = sel.value;
if (!A.state.formData.scores[nr]) A.state.formData.scores[nr] = {};
A.state.formData.scores[nr][field] = val;
sel.className = D.scoreClass(val);
A.updateTotaalscore();
A.autoSave();
}
function onOpmChange(inp) {
var nr = parseInt(inp.dataset.nr);
if (!A.state.formData.scores[nr]) A.state.formData.scores[nr] = {};
A.state.formData.scores[nr].opm = inp.value;
A.autoSave();
}
function onSpoorFieldChange(inp) {
var nr = parseInt(inp.dataset.nr);
var field = inp.dataset.field;
if (!A.state.formData.scores[nr]) A.state.formData.scores[nr] = {};
A.state.formData.scores[nr][field] = inp.value;
A.autoSave();
}
A.updateTotaalscore = function () {
var type = A.state.formData.type;
var worst;
if (D.usesDwlBal(type)) {
worst = D.computeWorstScore(A.state.formData.scores);
} else {
var order = ['', ...D.SCORE_VALUES];
var wIdx = 0; var wScore = '';
for (var data of Object.values(A.state.formData.scores)) {
var s = data.score || '';
var m = order.indexOf(s);
if (m > wIdx) { wIdx = m; wScore = order[m]; }
}
worst = wScore;
}
var el = document.getElementById('totaalscore');
el.textContent = worst || '-';
el.className = 'cell score-cell';
if (worst) el.classList.add(D.scoreClass(worst));
};
A.loadSavedData = async function (orderNr) {
var saved = await I.loadInspection(orderNr);
if (!saved) return;
if (saved.type) A.applyFormType(saved.type);
if (saved.inspecteur) document.getElementById('inp_inspecteur').value = saved.inspecteur;
if (saved.inspectiedatum) document.getElementById('inp_inspectiedatum').value = saved.inspectiedatum;
if (saved.techJaar) document.getElementById('inp_techjaar').value = saved.techJaar;
if (saved.inspJaar) document.getElementById('inp_inspjaar').value = saved.inspJaar;
if (saved.opmerkingen) document.getElementById('inp_opmerkingen').value = saved.opmerkingen;
if (saved.scores) {
A.state.formData.scores = saved.scores;
for (var [nr, data] of Object.entries(saved.scores)) {
var dS = document.querySelector('select[data-nr="' + nr + '"][data-type="dwl"]');
var bS = document.querySelector('select[data-nr="' + nr + '"][data-type="bal"]');
var sS = document.querySelector('select[data-nr="' + nr + '"][data-type="score"]');
var oI = document.querySelector('input[data-nr="' + nr + '"][data-field="opm"]');
if (dS && data.dwl) { dS.value = data.dwl; dS.className = D.scoreClass(data.dwl); }
if (bS && data.bal) { bS.value = data.bal; bS.className = D.scoreClass(data.bal); }
if (sS && data.score) { sS.value = data.score; sS.className = D.scoreClass(data.score); }
if (oI && data.opm) oI.value = data.opm;
}
A.updateTotaalscore();
}
if (saved.photos) { A.state.formData.photos = saved.photos; A.updatePhotoBadges(); }
if (saved.overviewPhotos) {
A.state.formData.overviewPhotos = saved.overviewPhotos;
A.updateOverviewBadges();
A.renderOverviewThumbs();
}
document.getElementById('statusSaved').textContent = 'Eerder opgeslagen data hersteld';
};
})(window.App.Application, window.App.Domain, window.App.Infrastructure);