Jake Vanderwerf
2026-01-04 afdc1b396e3e88146006cd707a15b9da4843e1c2
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;
      }