diff --git a/assets/js/script.js b/assets/js/script.js index b0adcd7..d551001 100644 --- a/assets/js/script.js +++ b/assets/js/script.js @@ -95,6 +95,13 @@ function saveNote(event) { event.preventDefault(); } + document.querySelector('#noteTitle').classList.remove('input-error'); + document.querySelector('#noteDate').classList.remove('input-error'); + document.querySelector('#speaker').classList.remove('input-error'); + document.querySelector('#series').classList.remove('input-error'); + document.querySelector('#passage').classList.remove('input-error'); + document.querySelector('#notes').classList.remove('input-error'); + if (!textDirty || !validateNote()) { clearTimeout(to); to = setTimeout(saveNote, saveInterval); @@ -174,14 +181,20 @@ function validateNote() { const title = document.querySelector('#noteTitle'); const psg = document.querySelector('#passage'); - if (!title.value.length) { return false; } - if (!date.value) { return false; } - if (!parseInt(speaker.value)) { return false; } - if (!parseInt(series.value)) { return false; } - if (!psg.value) { return false; } - if (!note.value.length) { return false; } + let ret = true; - return true; + if (!title.value.length) { title.classList.add('input-error'); ret = false; } + if (!date.value) { date.classList.add('input-error'); ret = false; } + if (!parseInt(speaker.value)) { speaker.classList.add('input-error'); ret = false; } + if (!parseInt(series.value)) { series.classList.add('input-error'); ret = false; } + if (!psg.value) { psg.classList.add('input-error'); ret = false; } + if (!note.value.length) { note.classList.add('input-error'); ret = false; } + + if (!ret) { + toggleFields(true); + } + + return ret; } /** @@ -506,20 +519,21 @@ function removeActiveRef() { /** * Toggles the visibility of the fields container and updates the active state of the show/hide button. * + * @param boolean show * @return {void} */ -function toggleFields() { +function toggleFields(show = false) { const fieldsContainer = document.getElementById('fields-container'); const showHideBtn = document.getElementById('show-hide-btn'); - if (fieldsContainer.classList.contains('show')) { - fieldsContainer.classList.remove('show'); - fieldsContainer.style.display = 'none'; - showHideBtn.classList.remove('active'); - } else { + if (show || !fieldsContainer.classList.contains('show')) { fieldsContainer.classList.add('show'); fieldsContainer.style.display = 'block'; showHideBtn.classList.add('active'); + } else { + fieldsContainer.classList.remove('show'); + fieldsContainer.style.display = 'none'; + showHideBtn.classList.remove('active'); } setHeight();