upd: notes

add validation feedback if user doesn't fill out all required fields.
This commit is contained in:
Ryan Prather 2025-06-03 12:58:42 -04:00
parent 1aed314ae3
commit 573b8b1d26

View File

@ -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();