diff --git a/app/views/entries/_form.html.erb b/app/views/entries/_form.html.erb index 7134cb1..d5c1d1b 100644 --- a/app/views/entries/_form.html.erb +++ b/app/views/entries/_form.html.erb @@ -223,6 +223,26 @@ clearFields(); // alle Quellen löschen } + function calculateEndTimeFromStart() { + if (!startInput.value || baseTotalMinutes === 0) return; + + const [sh, sm] = startInput.value.split(":").map(Number); + const startDate = new Date(2000, 0, 1, sh, sm); + + let minutesToAdd = baseTotalMinutes; + if (breakCheckbox && breakCheckbox.checked) minutesToAdd = Math.max(0, baseTotalMinutes - 30); + + const endDate = new Date(startDate.getTime() + minutesToAdd * 60000); + const hh = String(endDate.getHours()).padStart(2, '0'); + const mm = String(endDate.getMinutes()).padStart(2, '0'); + + endInput.value = `${hh}:${mm}`; + } + + startInput.addEventListener("change", function () { + calculateEndTimeFromStart(); + }); + // Listeners if (startInput && endInput) { startInput.addEventListener("change", calculateFromTimes);