From e9967fa22781d922ba4eb8fb44fe72d200ac4b14 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 10 Nov 2025 21:04:10 +0000
Subject: [PATCH] =IconsManager.php update

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

diff --git a/assets/js/concise/PopulateForm.js b/assets/js/concise/PopulateForm.js
index 4a56a10..a15d1fa 100644
--- a/assets/js/concise/PopulateForm.js
+++ b/assets/js/concise/PopulateForm.js
@@ -3,10 +3,6 @@
 **********************************************/
 class PopulateForm {
 	constructor(form, fieldData = {}, imageData = {}, options = {}) {
-		console.log('Populating field... ', form);
-		console.log('fieldData: ', fieldData);
-		console.log('imageData: ', imageData);
-		console.log('options: ', options);
 		for (let [fieldName, fieldValue] of Object.entries(fieldData)) {
 			let wrapper = form.querySelector(`[data-field="${fieldName}"]`);
 			if (wrapper) {
@@ -480,17 +476,78 @@
 	 * Populate gallery fields
 	 */
 	populateGalleryField(fieldWrapper, fieldName, fieldValue, imagesData = {}) {
-		this.populateImageField(fieldWrapper, fieldName, fieldValue, imagesData);
+		if (fieldName === 'timeline') {
+			this.populateTimelineGallery(fieldWrapper, fieldName, fieldValue, imagesData);
+		} else {
+			this.populateImageField(fieldWrapper, fieldName, fieldValue, imagesData);
+		}
+	}
+
+	populateTimelineGallery(fieldWrapper, fieldName, fieldValue, imagesData)
+	{
+		if (!fieldValue) {
+			return;
+		}
+
+		const imageIds = Object.keys(fieldValue);
+		if (imageIds.length === 0) {
+			return;
+		}
+
+		// Update image display
+		const grid = fieldWrapper.querySelector('.item-grid');
+		const uploadContainer = fieldWrapper.querySelector('.file-upload-container');
+		fieldWrapper.querySelector('.progress')?.remove();
+		if (grid) {
+			window.removeChildren(grid);
+			imageIds.forEach(imageId => {
+				let image = window.getTemplate('timelineItem');
+				let img = image.querySelector('img');
+
+				image.querySelector('video')?.remove();
+				image.querySelector('.select-item span')?.remove();
+				let data = fieldValue[imageId];
+
+				let imgData = imagesData[imageId];
+
+				img.src = imgData.medium;
+
+				data = { ... data, ... imgData};
+
+				let fields = image.querySelectorAll('.field');
+				fields.forEach(field => {
+					if (field.classList.contains('group')){
+						return;
+					}
+					let input = field.querySelector('input, textarea');
+
+					let label = field.querySelector('label');
+					let name = input.name.replace('upload_data::','');
+
+					let value = data[name];
+					this.populateField(field, name, value, imagesData);
+
+					let id = data.id;
+					let newName = `[${id}]${name}`;
+					[
+						input.name,
+						input.id,
+						label.htmlFor
+					] = [
+						newName,
+						newName,
+						newName,
+					]
+				});
+				grid.append(image);
+			});
+		}
 	}
 
 	/**
 	 * Populate repeater fields
 	 */
 	populateRepeaterField(fieldWrapper, fieldName, fieldValue, options = {}) {
-		console.log('fieldWrapper', fieldWrapper);
-		console.log('fieldName', fieldName);
-		console.log('fieldValue', fieldValue);
-		console.log('options', options);
 		if (!fieldValue || !Array.isArray(fieldValue)) {
 			return;
 		}

--
Gitblit v1.10.0