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 |   69 +++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/assets/js/concise/PopulateForm.js b/assets/js/concise/PopulateForm.js
index ec60ffc..a15d1fa 100644
--- a/assets/js/concise/PopulateForm.js
+++ b/assets/js/concise/PopulateForm.js
@@ -435,7 +435,7 @@
 		// 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 => {
@@ -476,7 +476,72 @@
 	 * 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);
+			});
+		}
 	}
 
 	/**

--
Gitblit v1.10.0