From 235ce5716edc2f7cbe80fdccf26eac7269587839 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 08 Jun 2026 04:38:18 +0000
Subject: [PATCH] =FavouritesManager.php and FavouritesRoutes.php fixes. Moving all logic to FavouritesManager.php. Still some left to do
---
assets/js/concise/SchemaManager.js | 63 ++++---------------------------
1 files changed, 8 insertions(+), 55 deletions(-)
diff --git a/assets/js/concise/SchemaManager.js b/assets/js/concise/SchemaManager.js
index bad3fa4..b4aba23 100644
--- a/assets/js/concise/SchemaManager.js
+++ b/assets/js/concise/SchemaManager.js
@@ -15,18 +15,13 @@
init() {
// Initialize FormController
- if (window.jvbForm && !window.formController) {
- this.formController = new window.jvbForm();
- window.formController = this.formController;
- } else if (window.formController) {
- this.formController = window.formController;
- }
+ this.formController = window.formController
// Initialize main Tabs (they're outside forms, so FormController won't handle them)
if (window.jvbTabs) {
const tabContainer = document.querySelector('.jvb-seo-admin');
if (tabContainer) {
- this.tabsInstance = new window.jvbTabs(tabContainer);
+ this.tabsInstance = window.jvbTabs.registerTab(tabContainer);
}
}
@@ -321,46 +316,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 +388,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