From f955b72d471f0f41ab01232aa3709c0391b0bed3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 11 Feb 2026 02:49:29 +0000
Subject: [PATCH] =aha - probably fixed the upload manager overwriting bug!

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

diff --git a/assets/js/concise/CRUD.js b/assets/js/concise/CRUD.js
index 00d33cf..0eabf79 100644
--- a/assets/js/concise/CRUD.js
+++ b/assets/js/concise/CRUD.js
@@ -12,7 +12,6 @@
 		this.error = window.jvbError;
 		this.populate = window.jvbPopulate;
 		this.cache = new window.jvbCache(this.content);
-		this.uploadedFields = new Set(); //tracks which upload fields are currently uploading; so don't send any of these changes to server
 
 		this.activeItem = null;
 		this.isTimeline = false;
@@ -356,16 +355,11 @@
 					const fieldName = data.field.config.name;
 					const itemId = data.field.config.itemID;
 					if (itemId && fieldName) {
-						this.uploadedFields.add(`${itemId}_${fieldName}`);
 						if (this.changes.has(itemId)) {
 							delete this.changes.get(itemId)[fieldName];
 						}
 					}
 				}
-
-				// if (event === 'upload_complete') {
-				// 	this.uploadedFields.delete(`${data['item_id']}_${data['field']}`);
-				// }
 			});
 		}
 		initModals() {
@@ -823,21 +817,6 @@
 		}
 		this.changes.get(itemId)[name] = value;
 
-		for (const key of this.uploadedFields) {
-			const [itemId, fieldName] = key.split('_');
-			if (this.changes.has(itemId)) {
-				delete this.changes.get(itemId)[fieldName];
-			}
-		}
-
-		// Don't schedule if only base keys remain
-		const change = this.changes.get(itemId);
-		const realKeys = Object.keys(change).filter(k => k !== 'id' && k !== 'content');
-		if (realKeys.length === 0) {
-			this.changes.delete(itemId);
-			return;
-		}
-
 		this.scheduleBackup();
 		//Only send actual itemIds to server. If this is a recently uploaded item, just store changes for now
 		if (typeof itemId === 'number' || !itemId.includes('group')) {
@@ -1263,6 +1242,7 @@
 			await this.handleBackup();
 		}
 		const changes = await this.changesStore.getAll();
+		console.log('Saving Changes: ', changes);
 		if (changes.length === 0) return;
 
 		if (title === '') {
@@ -1274,17 +1254,10 @@
 
 		changes.forEach(change => {
 			let itemId = change.id;
-			const { id, content, ...fields } = change;
 
-			// Filter out uploaded fields
-			for (const key of this.uploadedFields) {
-				const [uid, fieldName] = key.split('_');
-				if (uid === itemId) delete fields[fieldName];
-			}
-
-			if (Object.keys(fields).length > 0) {
-				allChanges[itemId] = { content, ...fields };
-			}
+			// Create a new object without the id field (don't mutate original!)
+			const { id, ...changeWithoutId } = change;
+			allChanges[itemId] = changeWithoutId;
 
 			if (change.post_status && this.shouldRemoveItemUI(change.post_status)) {
 				remove.push(itemId);

--
Gitblit v1.10.0