Growth chart: accept explicit 0 in any age field
Previously any form of zero total ("0 days", all blank) rejected
with "Enter age". Newborns at birth are a legitimate entry —
distinguish blank-all (error) from explicit-zero (valid).
This commit is contained in:
parent
df592d401b
commit
7cc8a1fa99
1 changed files with 19 additions and 9 deletions
|
|
@ -1151,11 +1151,21 @@
|
|||
return;
|
||||
}
|
||||
|
||||
var yr = parseFloat((document.getElementById('growth-age-yr') || {}).value) || 0;
|
||||
var mo = parseFloat((document.getElementById('growth-age-mo') || {}).value) || 0;
|
||||
var dy = parseFloat((document.getElementById('growth-age-d') || {}).value) || 0;
|
||||
var yrEl = document.getElementById('growth-age-yr');
|
||||
var moEl = document.getElementById('growth-age-mo');
|
||||
var dyEl = document.getElementById('growth-age-d');
|
||||
var yrRaw = yrEl ? yrEl.value.trim() : '';
|
||||
var moRaw = moEl ? moEl.value.trim() : '';
|
||||
var dyRaw = dyEl ? dyEl.value.trim() : '';
|
||||
// Treat blank fields as 0, but require at least ONE field to have any value.
|
||||
// "0 days" (newborn at birth) is valid — explicit zero counts.
|
||||
if (yrRaw === '' && moRaw === '' && dyRaw === '') {
|
||||
showToast('Enter age (years, months, or days)', 'error'); return;
|
||||
}
|
||||
var yr = parseFloat(yrRaw) || 0;
|
||||
var mo = parseFloat(moRaw) || 0;
|
||||
var dy = parseFloat(dyRaw) || 0;
|
||||
var age = yr * 12 + mo + dy / 30.4375; // age in months, fractional OK
|
||||
if (!age && yr === 0 && mo === 0 && dy === 0) { showToast('Enter age (years, months, or days)', 'error'); return; }
|
||||
if (age < 0) { showToast('Age cannot be negative', 'error'); return; }
|
||||
|
||||
if (currentGrowthType === 'wfa') {
|
||||
|
|
@ -1266,11 +1276,11 @@
|
|||
var ageHint = document.getElementById('growth-age-parsed');
|
||||
function updateAgeHint() {
|
||||
if (!ageHint) return;
|
||||
var yr = parseFloat((document.getElementById('growth-age-yr') || {}).value) || 0;
|
||||
var mo = parseFloat((document.getElementById('growth-age-mo') || {}).value) || 0;
|
||||
var dy = parseFloat((document.getElementById('growth-age-d') || {}).value) || 0;
|
||||
if (!yr && !mo && !dy) { ageHint.textContent = ''; return; }
|
||||
var total = yr * 12 + mo + dy / 30.4375;
|
||||
var yrRaw = ((document.getElementById('growth-age-yr') || {}).value || '').trim();
|
||||
var moRaw = ((document.getElementById('growth-age-mo') || {}).value || '').trim();
|
||||
var dyRaw = ((document.getElementById('growth-age-d') || {}).value || '').trim();
|
||||
if (yrRaw === '' && moRaw === '' && dyRaw === '') { ageHint.textContent = ''; return; }
|
||||
var total = (parseFloat(yrRaw) || 0) * 12 + (parseFloat(moRaw) || 0) + (parseFloat(dyRaw) || 0) / 30.4375;
|
||||
ageHint.style.color = 'var(--g500)';
|
||||
ageHint.textContent = formatParsedAge(total);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue