From 0113d2e9c9ff34a6ffb10707cc76d34b67a0c367 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 19 Jan 2026 16:29:41 +0000
Subject: [PATCH] =Refactored window.getTemplate into a full templating class window.jvbTemplates. Refactored CRUD.js, UploadManager.js, FormController.js, PopulateForm.js with that in mind
---
assets/js/concise/SchemaManager.js | 54 ++++++------------------------------------------------
1 files changed, 6 insertions(+), 48 deletions(-)
diff --git a/assets/js/concise/SchemaManager.js b/assets/js/concise/SchemaManager.js
index bad3fa4..4d2ae40 100644
--- a/assets/js/concise/SchemaManager.js
+++ b/assets/js/concise/SchemaManager.js
@@ -321,46 +321,23 @@
form.dataset.currentType = newType;
// Use PopulateForm to properly populate all fields including repeaters
- if (window.jvbPopulateForm) {
- const populator = new window.jvbPopulateForm();
- const preservedFields = [];
+ if (window.jvbPopulate) {
+ this.populate = window.jvbPopulate.populate;
// Populate each field that exists in both schemas
Object.keys(currentData).forEach(fieldName => {
const fieldWrapper = form.querySelector(`[data-field="${fieldName}"]`);
if (fieldWrapper) {
- const fieldType = this.getFieldType(fieldWrapper);
const fieldValue = currentData[fieldName];
-
- // Use PopulateForm's methods for complex fields
- if (fieldType === 'repeater' && Array.isArray(fieldValue)) {
- populator.populateRepeaterField(fieldWrapper, fieldName, fieldValue);
- preservedFields.push(fieldName);
- } else if (fieldValue !== null && fieldValue !== undefined && fieldValue !== '') {
- // Simple field - populate directly
- const field = fieldWrapper.querySelector(`[name="${fieldName}"]`) ||
- fieldWrapper.querySelector(`[name^="${fieldName}"]`);
- if (field) {
- this.populateSimpleField(field, fieldValue);
- preservedFields.push(fieldName);
- }
- }
+ this.populate(fieldWrapper, fieldName, fieldValue);
}
});
// Announce changes
- if (preservedFields.length > 0) {
- const message = `Schema type changed to ${newType}. Preserved ${preservedFields.length} field value(s).`;
- console.log(message);
- if (this.a11y && typeof this.a11y.announce === 'function') {
- this.a11y.announce(message);
- }
- } else {
- const message = `Schema type changed to ${newType}.`;
- if (this.a11y && typeof this.a11y.announce === 'function') {
- this.a11y.announce(message);
- }
+ const message = `Schema type changed to ${newType}.`;
+ if (this.a11y && typeof this.a11y.announce === 'function') {
+ this.a11y.announce(message);
}
}
}
@@ -416,25 +393,6 @@
}
/**
- * Populate a simple field with value
- */
- populateSimpleField(field, value) {
- if (field.type === 'checkbox') {
- field.checked = value === '1' || value === 'true' || value === true;
- } else if (field.tagName === 'SELECT') {
- setTimeout(() => {
- field.value = value;
- }, 10);
- } else {
- field.value = value;
- }
-
- // Visual feedback
- field.classList.add('value-preserved');
- setTimeout(() => field.classList.remove('value-preserved'), 2000);
- }
-
- /**
* Add CSS for preserved field indication
*/
addPreservedFieldStyles() {
--
Gitblit v1.10.0