From f16cb88a3218ac7bb32e43f0e0a2542d35c7a01b Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 17 Jun 2026 00:28:16 +0000
Subject: [PATCH] =Working on the Options Meta still. Group fields also needed some changes
---
assets/js/concise/FormController.js | 41 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 40 insertions(+), 1 deletions(-)
diff --git a/assets/js/concise/FormController.js b/assets/js/concise/FormController.js
index 3ba05b4..617c3a6 100644
--- a/assets/js/concise/FormController.js
+++ b/assets/js/concise/FormController.js
@@ -460,6 +460,10 @@
data: this.changes.get(form.id)?.changes??{},
});
}
+ if (form.options.endpoint) {
+ console.log('Submitting form...');
+ await this.handleServerSave(form, this.collectFormData(form.form));
+ }
}
@@ -500,6 +504,10 @@
if (form.options.cache) {
this.scheduleBackup();
}
+
+ if (form.options.endpoint) {
+ this.scheduleServerSave(form, changes);
+ }
}
scheduleBackup() {
@@ -555,6 +563,37 @@
this.changes.delete(formId);
}
+ scheduleServerSave(form, changes){
+
+ window.debouncer.schedule(
+ `form_${form.id}_server_save`,
+ async () => {
+ await this.handleServerSave(form, changes);
+ },
+ 1500
+ );
+ }
+ cancelServerSave(formId) {
+ window.debouncer.cancel(`form_${formId}_server_save`);
+ }
+ async handleServerSave(form, changes) {
+ this.cancelServerSave(form.id);
+
+ if (window.jvbQueue) {
+ changes.user = window.auth.getUser();
+ window.jvbQueue.addToQueue({
+ endpoint: form.options.endpoint,
+ data: changes,
+ headers: form.options.headers??{},
+ });
+ } else {
+ await window.auth.fetch(jvbBase.api+form.options.endpoint, {
+ body: changes,
+ headers: form.options.headers??{},
+ });
+ }
+ }
+
/**
* Register a form for handling
@@ -573,6 +612,7 @@
ignore: [],
... options
};
+
//Bail if form already registered
if (Object.hasOwn(form.dataset, 'formId') && this.forms.has(form.dataset.formId)) return;
@@ -598,7 +638,6 @@
this.initializeFields(form, config);
this.forms.set(formId, config);
-
return config;
}
clearForm(formId) {
--
Gitblit v1.10.0