From 06ba5608dd4030385ca2c804bd76dcac16c51fb8 Mon Sep 17 00:00:00 2001 From: Thomas Lynch Date: Mon, 7 Mar 2022 17:23:53 +1100 Subject: [PATCH] ref #429, fix and improvement, less junk in forms.js when adding stuff like that in future --- gulp/res/js/forms.js | 7 ------- gulp/res/js/password.js | 23 +++++++++++++++++------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/gulp/res/js/forms.js b/gulp/res/js/forms.js index 49099393..eb1d14f9 100644 --- a/gulp/res/js/forms.js +++ b/gulp/res/js/forms.js @@ -133,14 +133,7 @@ class postFormHandler { } reset() { - const savedName = this.form.elements.name && this.form.elements.name.value; this.form.reset(); - if (this.form.elements.name) { - this.form.elements.name.value = savedName; - } - if (this.form.elements.postpassword) { - this.form.elements.postpassword.value = localStorage.getItem('postpassword'); - } this.updateFlagField(); this.updateMessageBox(); this.files = []; diff --git a/gulp/res/js/password.js b/gulp/res/js/password.js index 8e2bbc20..1e73d47c 100644 --- a/gulp/res/js/password.js +++ b/gulp/res/js/password.js @@ -44,22 +44,33 @@ class syncedField { settingsFields[0].addEventListener('input', (e) => { this.update(e) }, false); } for (let field of this.fields) { - field.value = localStorage.getItem(this.key); - if (field.tagName === 'SELECT') { - const changeEvent = new Event("change"); - field.dispatchEvent(changeEvent); - } !this.oneWay && field.addEventListener('input', (e) => { this.update(e) }, false); + field.form && field.form.addEventListener('reset', (e) => { + setTimeout(() => { + this.set(localStorage.getItem(this.key)); + }, 0); + }, false); } + this.set(localStorage.getItem(this.key)); } update(e) { if (this.persistent) { setLocalStorage(this.key, e.target.value); } + this.set(e.target.value); + } + set(val) { for (let field of this.fields) { - field.value = e.target.value; + field.value = val; + if (field.tagName === 'SELECT') { + //necessary to set selectedIndex here? + const changeEvent = new Event("change"); + field.dispatchEvent(changeEvent); + } } } + + } window.addEventListener('settingsReady', () => {