From 42fa8304ddb811b0f725f245130f70c0f5e86a6c Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 04 Nov 2025 06:12:02 +0000
Subject: [PATCH] =Refactored LoginManager to be more extensible and configurable, as well as an AjaxRateLimiter
---
assets/js/concise/FormController.js | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/assets/js/concise/FormController.js b/assets/js/concise/FormController.js
index cdae988..9a3b075 100644
--- a/assets/js/concise/FormController.js
+++ b/assets/js/concise/FormController.js
@@ -197,9 +197,9 @@
element: formElement,
id: formId,
options: {
- autoSave: true,
+ autoSave: 'autosave' in formElement.dataset,
saveDelay: this.autoSaveDefaults.delay,
- endpoint: formElement.dataset.save,
+ endpoint: formElement.dataset.save??'',
cache: true,
...options
},
@@ -255,7 +255,7 @@
// Scan for existing selector fields
if (window.jvbSelector) {
- window.jvbSelector.scanExistingFields();
+ window.jvbSelector.scanExistingFields(form);
}
}
@@ -746,6 +746,9 @@
}
handleChange(event) {
+ if (event.target.closest('[data-ignore]')) {
+ return;
+ }
if (this.subscribers.size > 0) {
const target = event.target;
const form = target.form || target.closest('form');
@@ -780,6 +783,9 @@
}
handleBlur(e) {
+ if (e.target.closest('[data-ignore]')) {
+ return;
+ }
const target = e.target;
const form = target.form || target.closest('form');
@@ -813,6 +819,9 @@
}
handleInput(e) {
+ if (e.target.closest('[data-ignore]') || ! e.target.closest('form')) {
+ return;
+ }
const input = e.target.closest('input, textarea, select');
if (!input) return;
@@ -2109,4 +2118,5 @@
document.addEventListener('DOMContentLoaded', () => {
window.jvbForm = FormController;
+ console.log('FormController in window');
});
--
Gitblit v1.10.0