From 3b83905603d44b1a08f8b2b36a605808ce686ad6 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 02 Jun 2026 00:46:48 +0000
Subject: [PATCH] =double checking schema outputs for legacytattooremoval

---
 assets/js/concise/PopulateForm.js |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/assets/js/concise/PopulateForm.js b/assets/js/concise/PopulateForm.js
index be44bfa..edfda97 100644
--- a/assets/js/concise/PopulateForm.js
+++ b/assets/js/concise/PopulateForm.js
@@ -59,7 +59,7 @@
 	populateField(field, name, value) {
 
 		let type = this.formHelper.getFieldType(field);
-		if (!type || this.isEmptyValue(name) || this.isEmptyValue(value)) return;
+		if (!type || this.isEmptyValue(name)) return;
 
 		const handlers = {
 			'repeater': this.populateRepeater.bind(this),
@@ -93,12 +93,23 @@
 	}
 
 	populateRepeater(field, name, value) {
-		if (!value || !Array.isArray(value)) return;
-
 		const container = field.querySelector('.repeater-items');
 		let template = field.querySelector('template')?.className ?? false;
 		if (!container || !template) return;
 
+		// Normalize: server/store may return an object with numeric keys instead of an array
+		if (typeof value === 'string') {
+			try { value = JSON.parse(value); } catch(e) { value = []; }
+		}
+		if (value && !Array.isArray(value) && typeof value === 'object') {
+			value = Object.values(value);
+		}
+
+		if (!value || !Array.isArray(value) || value.length === 0) {
+			window.removeChildren(container);
+			return;
+		}
+
 		window.removeChildren(container);
 
 		value.forEach((data, index) => {
@@ -123,12 +134,23 @@
 		});
 	}
 	populateTagList(field, name, value) {
-		if (!value || !Array.isArray(value)) return;
 
 		const container = field.querySelector('.tag-items');
 		let template = field.querySelector('template')?.className ?? false;
 		if (!container || !template) return;
 
+		if (typeof value === 'string') {
+			try { value = JSON.parse(value); } catch(e) { value = []; }
+		}
+		if (value && !Array.isArray(value) && typeof value === 'object') {
+			value = Object.values(value);
+		}
+
+		if (!value || !Array.isArray(value) || value.length === 0) {
+			window.removeChildren(container);
+			return;
+		}
+
 		window.removeChildren(container);
 
 		value.forEach((data, index) => {
@@ -192,7 +214,6 @@
 	}
 	populateTaxonomy(field, name, value) {
 		let termIds = this.splitIDs(value);
-		if (termIds.length === 0) return;
 
 		const hiddenInput = field.querySelector(`input[type="hidden"][name="${name}"]`);
 		if (hiddenInput) {
@@ -213,7 +234,6 @@
 			return;
 		}
 
-		if (this.isEmptyValue(value)) return;
 		const ids = this.splitIDs(value);
 		if (ids.length === 0) return;
 		const hiddenInput = field.querySelector(`input[type="hidden"]`);

--
Gitblit v1.10.0