You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
1.5 KiB

<h1>Minutenrechner</h1>
<div class="mb-4">
<label for="minute-inputs" class="form-label">Minuteneinträge (z. B. 45, 60, 30):</label>
<textarea id="minute-inputs" class="form-control" rows="3"></textarea>
<button id="sum-button" class="btn btn-primary mt-2">Summieren</button>
</div>
<div class="mb-4">
<p>Gesamtsumme: <strong><span id="total-time">0h 0min</span></strong> (<span id="total-minutes">0min</span>)</p>
</div>
<%= render "entries/form", entry: @entry %>
<script>
document.addEventListener("DOMContentLoaded", function () {
const textarea = document.getElementById("minute-inputs");
const totalSpan = document.getElementById("total-time");
const totalMinutesSpan = document.getElementById("total-minutes");
const sumBtn = document.getElementById("sum-button");
const hourInput = document.getElementById("entry_hours");
const minuteInput = document.getElementById("entry_minutes");
sumBtn.addEventListener("click", function () {
const values = textarea.value.split(/[ ,;\n]+/).map(v => parseInt(v.trim())).filter(Number.isFinite);
const totalMinutes = values.reduce((sum, val) => sum + val, 0);
const hours = Math.floor(totalMinutes / 60);
const minutes = totalMinutes % 60;
totalSpan.textContent = `${hours}h ${minutes}min`;
totalMinutesSpan.textContent = `${totalMinutes} min`;
hourInput.value = hours;
minuteInput.value = minutes;
});
});
</script>