From a81f7043fc44382775f9afac48e4c7a651e7ac6c Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 04 Jan 2026 18:29:10 +0000
Subject: [PATCH] =PopulateForm.js and ContentRoutes.php minor changes

---
 assets/js/concise/PopulateForm.js |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/assets/js/concise/PopulateForm.js b/assets/js/concise/PopulateForm.js
index 1f4273d..f9335db 100644
--- a/assets/js/concise/PopulateForm.js
+++ b/assets/js/concise/PopulateForm.js
@@ -166,7 +166,6 @@
 			fieldWrapper.querySelector('textarea:not([data-editor="true"])');
 
 		if (textarea) {
-			const oldValue = textarea.value;
 			textarea.value = String(fieldValue || '');
 
 			// Trigger change event to update any dependencies
@@ -392,7 +391,8 @@
 		} else if (typeof fieldValue === 'string') {
 			try {
 				const parsed = JSON.parse(fieldValue);
-				termIds = Array.isArray(parsed) ? parsed.map(v => String(v)) : [String(parsed)];
+				termIds = Array.isArray(parsed) ?
+					parsed.map(v => String(v)) : [String(parsed)];
 			} catch (e) {
 				termIds = fieldValue.split(',').map(v => v.trim());
 			}
@@ -408,6 +408,12 @@
 		const hiddenInput = fieldWrapper.querySelector(`input[type="hidden"][name="${fieldName}"]`);
 		if (hiddenInput) {
 			hiddenInput.value = termIds.join(',');
+
+			// Trigger TaxonomySelector to update visual display
+			const toggle = fieldWrapper.querySelector('.taxonomy-toggle');
+			if (toggle && toggle.dataset.fieldId && window.jvbTaxonomy) {
+				window.jvbTaxonomy.updateFieldFromInput(toggle.dataset.fieldId);
+			}
 		}
 	}
 
@@ -451,11 +457,14 @@
 		const grid = fieldWrapper.querySelector('.item-grid');
 		const uploadContainer = fieldWrapper.querySelector('.file-upload-container');
 
+		// Clear existing items first
+		if (grid) {
+			window.removeChildren(grid);
+		}
 
 		fieldWrapper.querySelector('.progress')?.remove();
 
 		if (grid) {
-			window.removeChildren(grid);
 			itemIds.forEach(itemId => {
 				const template = window.getTemplate('uploadItem');
 
@@ -466,15 +475,14 @@
 
 				let input = template.querySelector('input[name="select-item"]');
 				let label = template.querySelector('label[for="select-item"]');
+
 				template.dataset.id = itemId;
 				input.name = input.name + `-${itemId}`;
 				input.id = input.name;
 				label.htmlFor = input.name;
 
-
 				const img = template.querySelector('img');
-
-				template.querySelector('video').remove();
+				template.querySelector('video')?.remove();
 				const details = template.querySelector('details');
 
 				// Populate with data
@@ -494,7 +502,7 @@
 					if (altInput) altInput.value = data['image-alt-text'] || data.alt || '';
 					if (captionInput) captionInput.value = data['image-caption'] || data.caption || '';
 				} else {
-					console.warn('No image data found for ID:', itemId);
+					console.warn('No image data found for ID:', itemId, 'Available data:', Object.keys(imagesData));
 				}
 
 				// Remove hint if present
@@ -511,6 +519,7 @@
 	}
 
 	populateTimelineGallery(fieldWrapper, fieldName, fieldValue, imagesData) {
+		console.log('populating Timeline Gallery');
 		if (!fieldValue || typeof fieldValue !== 'object') {
 			return;
 		}
@@ -528,7 +537,7 @@
 		if (grid) {
 			window.removeChildren(grid);
 			console.log(imageIds);
-			for (let [index, data] of Object.entries(fieldValue)) {
+			for (let data of Object.entries(fieldValue)) {
 				let imageId = data['post_thumbnail'];
 				const template = window.getTemplate('timelineItem');
 				if (!template) return;
@@ -596,7 +605,7 @@
 	/**
 	 * Populate repeater fields
 	 */
-	populateRepeaterField(fieldWrapper, fieldName, fieldValue, options = {}) {
+	populateRepeaterField(fieldWrapper, fieldName, fieldValue) {
 		if (!fieldValue || !Array.isArray(fieldValue)) {
 			return;
 		}

--
Gitblit v1.10.0