From 3aada9949d51024a92a8b5c6cb70d12f9c3cac16 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 21 Dec 2025 19:59:48 +0000
Subject: [PATCH] =auth refactored via rest, referral system set up for Jane, some javascript consolidation

---
 src/forms/view.js |   58 ++++++++++++++++------------------------------------------
 1 files changed, 16 insertions(+), 42 deletions(-)

diff --git a/src/forms/view.js b/src/forms/view.js
index d8f6948..e4a88ea 100644
--- a/src/forms/view.js
+++ b/src/forms/view.js
@@ -1,4 +1,5 @@
 /**
+ * view.js
  * Frontend JavaScript for the Form Block
  * Handles form validation and submission
  */
@@ -7,7 +8,7 @@
 		this.controller = new window.jvbForm();
 
 		document.querySelectorAll('.jvb-form-block form').forEach(form => {
-			this.controller.registerForm(form);
+			this.controller.registerForm(form, {autosave: true});
 		});
 
 		this.controller.subscribe((event, data) => {
@@ -18,15 +19,9 @@
 	}
 
 	async handleFormSubmission(data) {
-		let [
-			formId,
-			formConfig,
-			formData
-		] = [
-			data.formId,
-			data.config,
-			data.data
-		];
+		let formId = data.formId;
+		let formConfig = data.config;
+		let formData = data.fullData;
 		let form = formConfig.element;
 
 		let headers = {
@@ -34,51 +29,30 @@
 			'Content-Type': 'application/json'
 		};
 
-		data['form_type'] = formId;
-		data['form_id'] = form.id;
 		let block = form.closest('.jvb-form-block');
 		this.controller.showFormStatus(formId, 'uploading');
+
 		try {
-			const response = await fetch (`${jvbSettings.api}forms`,
-				{
-					method: 'POST',
-					headers,
-					body: JSON.stringify(formData)
-				});
+			const response = await fetch(`${jvbSettings.api}forms`, {
+				method: 'POST',
+				headers,
+				body: JSON.stringify(formData)
+			});
+
 			if (!response.ok) {
 				this.controller.showFormStatus(formId, 'error');
 				const errorData = await response.json().catch(() => ({}));
-				throw new Error(errorData.message|| `Request failed with status ${response.status}`);
+				throw new Error(errorData.message || `Request failed with status ${response.status}`);
 			}
+
 			this.controller.showFormStatus(formId, 'submitted');
-
 			this.controller.showSummary(formId, '.jvb-form-block');
-			this.controller.store.delete(formId);
-
 		} catch (error) {
 			throw error;
+		} finally {
+			this.controller.store.delete(formId);
 		}
 	}
-
-	updateUI(response, block) {
-
-		let summary = window.getTemplate('formSummary');
-		summary.querySelector('h2').textContent = 'Success!';
-		console.log('Form Response: ', response);
-		console.log(summary);
-		for (let [key, value] of Object.entries(response)) {
-			let item = summary.querySelector(`#${key}`);
-			if (item) {
-				let title = item.querySelector('h4');
-				if (title.innerText.includes('%s')) {
-					title.innerHTML = title.replace('%s', '<b>'+value+'</b>');
-				} else {
-					item.querySelector('div').innerHTML = value;
-				}
-			}
-		}
-		block.append(summary);
-	}
 }
 
 document.addEventListener('DOMContentLoaded', function() {

--
Gitblit v1.10.0