From 275c0d74cd68677622a5431505c5c870c473063d Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 29 Mar 2026 21:40:15 +0000
Subject: [PATCH] =Seems to be working, huzzah! Added some changes for on-this-page nav

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

diff --git a/assets/js/concise/CRUD.js b/assets/js/concise/CRUD.js
index a4e1573..3a61fd5 100644
--- a/assets/js/concise/CRUD.js
+++ b/assets/js/concise/CRUD.js
@@ -52,8 +52,9 @@
 			if (refs.trash) refs.trash.dataset.id = data.id;
 		};
 		const imageSetup = function(el, refs, data) {
-			if (data?.fields?.post_thumbnail) {
-				const thumbnail = data.images[data.fields.post_thumbnail] ?? {};
+			let hasThumbnail = data?.fields?.post_thumbnail || data?.fields?.thumbnail;
+			if (hasThumbnail) {
+				const thumbnail = data.images[hasThumbnail] ?? {};
 				refs.img.src = thumbnail.medium??'';
 				refs.img.alt = thumbnail.alt??data.fields.post_title??'';
 			}
@@ -516,31 +517,64 @@
 				}
 				this.store.clearCache();
 			}
+
 			if (event === 'operation-status'
 				&& data.status === 'completed'
 				&& data.type === 'content_update') {
+
 				this.store.clearCache();
 
-				// Check for result data (from ContentExecutor)
-				if (!data.result || !data.result.posts) {
-					console.warn('Content update completed but no result.posts', data);
+				if (!data.result || !data.result.success || !data.result.errors)
+				{
+					console.warn('Content update completed but no results', data);
 					return;
 				}
 
-				// Get successfully processed post IDs
-				const successfulIds = Object.keys(data.result.posts);
-
-				if (successfulIds.length === 0) {
+				if (Object.keys(data.result.success).length > 0) {
+					this.checkCompletedChanges(Object.entries(data.result.success));
+				}
+				if (Object.keys(data.result.errors).length > 0) {
+					this.checkFailedChanges(Object.entries(data.result.errors));
 					return;
 				}
 
-				// Clear from both persistent and in-memory storage
-				this.changesStore.deleteMany(successfulIds);
-				successfulIds.forEach(id => this.changes.delete(id));
+				if (Object.keys(data.result.success).length === 0) {
+					this.changesStore.delete(id);
+					this.store.clearCache();
+				}
 			}
 
 		});
 	}
+	checkCompletedChanges(items) {
+		for (let [id, data] of items) {
+
+			let stored = this.changesStore.get(id);
+			if (!stored) continue;
+
+			for (let [field, value] of Object.entries(data)) {
+				if (Object.hasOwn(stored, field)) {
+					let changes = window.getDifferences.map(stored[field], value);
+
+					if (!changes) {
+						delete stored[field];
+					}
+
+				}
+			}
+
+			//It'll have the id and the content still
+			if (Object.values(stored).length === 2) {
+				this.changesStore.delete(id);
+				this.store.clearCache();
+			} else {
+				this.changesStore.save(stored);
+			}
+		}
+	}
+	checkFailedChanges(items) {
+		//TODO do something.
+	}
 
 	initSettings() {
 		this.defaults = {
@@ -1220,7 +1254,13 @@
 		this.activeItem = item.id;
 		this.ui.modals.edit.modal.dataset.itemId = itemID;
 		this.ui.modals.edit.modal.dataset.content = this.content;
-		this.ui.modals.edit.h2.textContent = `Editing ${item.fields.post_title === '' ? this.singular : item.fields.post_title}`;
+		let title;
+		if (Object.hasOwn(item.fields, 'post_title')) {
+			title = item.fields.post_title;
+		} else if (Object.hasOwn(item.fields, 'name')) {
+			title = item.fields.name;
+		}
+		this.ui.modals.edit.h2.textContent = `Editing ${title === '' ? this.singular : title}`;
 		this.ui.modals.edit.form.dataset.formId = `edit-${itemID}`;
 
 

--
Gitblit v1.10.0