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