From ac444cba221832c012c0435fdc8339fe9f37febb Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 11 May 2026 18:35:04 +0000
Subject: [PATCH] =Some changes to the CRUD.js editing, timeline post configuration

---
 inc/managers/queue/executors/ContentExecutor.php |   48 +++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/inc/managers/queue/executors/ContentExecutor.php b/inc/managers/queue/executors/ContentExecutor.php
index 4fbdba2..3d5ef56 100644
--- a/inc/managers/queue/executors/ContentExecutor.php
+++ b/inc/managers/queue/executors/ContentExecutor.php
@@ -70,7 +70,7 @@
 
 		if (empty($posts)) {
 			return new Result(
-				outcome: 'failed',
+				outcome: 'success',
 				result: ['message' => 'No posts to update']
 			);
 		}
@@ -242,12 +242,11 @@
 			}
 		}
 	}
-	protected function maybeReorderTimeline(int $parentID):void
+	protected function getTimelinePosts(int $parentID):array
 	{
-//		clean_post_cache($parentID);
 		$parent = get_post($parentID);
 		if (!$parent) {
-			return;
+			return [];
 		}
 
 		$children = get_children([
@@ -258,7 +257,7 @@
 
 
 		if (count($children) === 0) {
-			return;
+			return [];
 		}
 
 		$allPosts = array_merge([$parent], $children);
@@ -268,6 +267,22 @@
 			return strtotime($a->post_date) <=> strtotime($b->post_date);
 		});
 
+		return $allPosts;
+	}
+	protected function maybeReorderTimeline(int $parentID):void
+	{
+//		clean_post_cache($parentID);
+		$parent = get_post($parentID);
+		if (!$parent) {
+			return;
+		}
+
+		$allPosts = $this->getTimelinePosts($parentID);
+		if (empty($allPosts)) {
+			return;
+		}
+
+
 
 		// Check if order changed
 		$needsReorder = false;
@@ -503,6 +518,7 @@
 				'post_title'  => $data['post_title'] ?? apply_filters('jvbDefaultTitle', '', $registrar->getSlug()),
 				'post_status' => $data['status'] ?? 'draft',
 			]);
+			error_log('Created new post: '.print_r($newId, true));
 
 			if (!$newId || is_wp_error($newId)) {
 				$results['errors'][$ID] = 'Could not create post';
@@ -540,6 +556,28 @@
 				return !array_key_exists('for_all', $field) || !$field['for_all'];
 			}));
 
+
+			if (array_key_exists('timeline_gallery', $data)) {
+				//This should only happen if we delete an image from the gallery
+				$changes = explode(',', $data['timeline_gallery']);
+				$timelinePosts = $this->getTimelinePosts($parentId);
+				if (!empty($timelinePosts)) {
+					$posts = array_map(function($item) { return $item->ID; }, $timelinePosts);
+					$changed = false;
+					foreach ($posts as $tID) {
+						if (!in_array($tID, $changes)) {
+							$changed = true;
+							wp_delete_post($tID, true);
+						}
+					}
+					if ($changed) {
+						$results['timelineParents'][] = $parentId;
+					}
+				}
+
+			}
+
+
 			if (array_key_exists('post_date', $data) && !in_array($parentId, $results['timelineParents'])) {
 				$results['timelineParents'][] = $parentId;
 			}

--
Gitblit v1.10.0