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