From 9e7e84a4fc1940205652b8990f030614be9e1ce8 Mon Sep 17 00:00:00 2001 From: Ryan Prather Date: Thu, 16 May 2024 18:53:17 -0400 Subject: [PATCH] fix setTimeouts --- public/js/script.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/public/js/script.js b/public/js/script.js index ae281d1..c8b4edf 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -5,6 +5,7 @@ var tabs = []; let saved = false; let textDirty = false; let saveTimeout = 10000; +var to = null; document.addEventListener('keyup', function (event) { if (event.key == "F3") { @@ -60,7 +61,9 @@ function setHeight() { } }); } - setTimeout(saveNote, saveTimeout); + if (!to) { + to = setTimeout(saveNote, saveTimeout); + } } function search() { @@ -133,7 +136,8 @@ function saveNote(event) { } if (!textDirty || !validateNote()) { - setTimeout(saveNote, saveTimeout); + clearTimeout(to); + to = setTimeout(saveNote, saveTimeout); return; } @@ -161,10 +165,14 @@ function saveNote(event) { saved = true; textDirty = false; document.querySelector('#note-header-left h2').classList.remove('dirty'); + + if (data.new) { + document.querySelector('#noteId').value = data.id; + } } }) .catch(error => console.log(error)) - .finally(() => setTimeout(saveNote, saveTimeout)); + .finally(() => function () { clearTimeout(to); to = setTimeout(saveNote, saveTimeout); }); } function validateNote() { @@ -173,10 +181,8 @@ function validateNote() { const speaker = document.querySelector('#speaker'); const series = document.querySelector('#series'); const title = document.querySelector('#noteTitle'); - const id = document.querySelector('#noteId'); const psg = document.querySelector('#passage'); - if (!isUuidValid(id.value)) { return false; } if (!title.value.length) { return false; } if (!date.value) { return false; } if (!parseInt(speaker.value)) { return false; } @@ -380,6 +386,7 @@ function queryRef(type = null, book = null, input = null) { document.querySelector('#referenceType').value = ''; document.querySelector('#referenceBook').value = ''; document.querySelector('#referenceBook').style.display = 'none'; + document.querySelector('#refQuery #search').value = ''; closeRef(); saved = false;