From 772462eeca3002a1d52508aeba485aab2b4742ad Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 03 Mar 2026 19:06:19 +0000
Subject: [PATCH] =MAJOR OVERHAUL. Likely should have made a new branch ages ago. Key changes: Registrar.php is the base for custom post types, taxonomies, and user roles. Replaces JVB_CONTENT, JVB_TAXONOMY, and JVB_USER constants, eliminates most of Features.php (except for JVB_SITE, JVB_MEMBERSHIP), and has built in sanitizing and validation via sub-classes. Also started a major overhaul of the Schema output. Created a shit ton of property traits and classes to help sanitize and ensure proper data for different schema types. Still a bunch to do, but better to be starting committing changes here on this other branch.

---
 assets/js/concise/CRUD.js |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/assets/js/concise/CRUD.js b/assets/js/concise/CRUD.js
index a189ac9..a4e1573 100644
--- a/assets/js/concise/CRUD.js
+++ b/assets/js/concise/CRUD.js
@@ -798,13 +798,22 @@
 	}
 
 	handleItemUpdate(e) {
-
 		let item = window.targetCheck(e, '[data-item-id]');
 		if (!item) return;
 
-		let field = e.target.closest('[data-field-type="repeater"],[data-field-type="tag-list"],[data-field]');
-		let name = field.dataset.field;
-		let value = this.forms.getFieldValue(e.target);
+		// Check if inside a collection field first
+		const collection = e.target.closest('[data-field-type="repeater"], [data-field-type="tag-list"]');
+
+		let name, value;
+		if (collection) {
+			name = collection.dataset.field;
+			value = this.forms.getFieldValue(collection);
+		} else {
+			let field = e.target.closest('[data-field]');
+			name = field.dataset.field;
+			value = this.forms.getFieldValue(e.target);
+		}
+
 		item.dataset.itemId.split(',').forEach(itemId => {
 			this.updateItem(itemId, name, value);
 		});

--
Gitblit v1.10.0