diff --git a/app/static/app/js/home.js b/app/static/app/js/home.js index 24b6a7a..4d2addb 100644 --- a/app/static/app/js/home.js +++ b/app/static/app/js/home.js @@ -164,19 +164,53 @@ sonstigesCheck.addEventListener('change', function() { // BEARBEITUNGS FORMULAR // -document.getElementById('closeEditWindowButton').addEventListener('click', () => { - - // console.log('close edit window') +var edithours = document.getElementById('editStunden') +var editMins = document.getElementById('editMinuten') +var editldcCheck = document.getElementById('editldcCheck'); +var editsonstigesCheck = document.getElementById('editsonstigesCheck'); +var editsonstigesText = document.getElementById('edit-sonstiges-text'); +var editsonstigesInput = document.getElementById('editsonstigesInput'); +var EditSaveButton = document.getElementById('editEntrySubmitButton'); + + +// Änderungen überwachen damit die das Formular nicht zu früh abgesendet wird +edithours.addEventListener('input', () => { + checkEditInput(); + console.log(this.value) +}) +editMins.addEventListener('input', () => { + checkEditInput(); + console.log(this.value) +}) +editsonstigesInput.addEventListener('input', () => { + checkEditInput(); + console.log(this.value) +}) + +editldcCheck.addEventListener('change', function() { + if (editldcCheck.checked) { + editsonstigesCheck.checked = false; + editsonstigesText.style.display = 'none'; + editsonstigesInput.removeAttribute('required'); // Entferne required, wenn "Sonstiges" abgewählt ist + } }); +editsonstigesCheck.addEventListener('change', function() { + checkEditInput(); + if (editsonstigesCheck.checked) { + editldcCheck.checked = false; + editsonstigesText.style.display = 'block'; + editsonstigesInput.setAttribute('required', 'required'); // Setze required, wenn "Sonstiges" ausgewählt ist + } else { + editsonstigesText.style.display = 'none'; + editsonstigesInput.removeAttribute('required'); // Entferne required, wenn "Sonstiges" abgewählt ist + } +}); document.getElementById('editEntrySubmitButton').addEventListener('click', () => { - const ToEditID = document.getElementById('editEntryID').value - const editHours = document.getElementById('editStunden').value - const editMins = document.getElementById('editMinuten').value - - // console.log(`ID: ${ToEditID}, Hours: ${editHours}, Minutes: ${editMins}`) + var ToEditID = document.getElementById('editEntryID').value + // console.log(`ID: ${ToEditID}, Hours: ${editHours.values}, Minutes: ${editMins.values}`) var type = 1 @@ -193,7 +227,7 @@ document.getElementById('editEntrySubmitButton').addEventListener('click', () => updateEntry(parseInt(ToEditID), { date: document.getElementById('editDatum').value, - duration: (parseInt(editHours)*60) + parseInt(editMins), + duration: (parseInt(edithours.value)*60) + parseInt(editMins.value), type: type, status: 1, sondertext: document.getElementById('editsonstigesInput').value, @@ -252,3 +286,45 @@ function checkInput() { NewEntryButton.classList.replace('btn-primary', 'btn-light'); } } + +var editallowToSend = true; +function checkEditInput() { + var edithours = document.getElementById('editStunden') + var editMins = document.getElementById('editMinuten') + var editsonstigesCheck = document.getElementById('editsonstigesCheck'); + var editsonstigesText = document.getElementById('edit-sonstiges-text'); + var editsonstigesInput = document.getElementById('editsonstigesInput'); + var EditSaveButton = document.getElementById('editEntrySubmitButton'); + + // Eingabe feld für Beschreibung leeren wenn sonstiges abgewählt wird + if (!editsonstigesCheck.checked) { + editsonstigesInput.value = null; + } + + // Berechtigungen durch gehen damit Button verfügbar und Form abgesendet werden kann + if ((editsonstigesCheck.checked && editsonstigesInput.value !== "") || !(editsonstigesCheck.checked)) { + // Debug Ausgabe für Bedingungsstufen + // console.log("Erste Bedingung: TRUE") + if (edithours.value && editMins.value) { + // Debug Ausgabe für Bedingungsstufen + // console.log("Zweite Bedingung: TRUE") + if (!editallowToSend) { + // Debug Ausgabe für Bedingungsstufen + // console.log("Dritte Bedingung: TRUE") + editallowToSend = true; + EditSaveButton.classList.remove('disabled'); + EditSaveButton.classList.replace('btn-light', 'btn-primary'); + } + } else if (editallowToSend) { + editallowToSend = false; + EditSaveButton.classList.add('disabled'); + EditSaveButton.classList.replace('btn-primary', 'btn-light'); + } + } else if (editallowToSend) { + editallowToSend = false; + EditSaveButton.classList.add('disabled'); + EditSaveButton.classList.replace('btn-primary', 'btn-light'); + } + // Debug ausgabe er Werte + console.log(`Status: ${editallowToSend} - Check: ${editsonstigesCheck.checked} - Input: ${editsonstigesInput.value} - Stunden: ${edithours.value} - Min: ${editMinuten.value}`) +}