From 58e8ae0759ccfa97c478ccae4e0778bdce70966f Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 22 Jan 2026 22:40:02 +0000
Subject: [PATCH] =DirectoryManager.php updates, some javascript tweaks for CRUD.js, and minor style changes
---
inc/rest/routes/ContentRoutes.php | 38 ++++++++++++++++++++++++++++++++------
1 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/inc/rest/routes/ContentRoutes.php b/inc/rest/routes/ContentRoutes.php
index 43b1f9f..3fc50bb 100644
--- a/inc/rest/routes/ContentRoutes.php
+++ b/inc/rest/routes/ContentRoutes.php
@@ -3,6 +3,8 @@
namespace JVBase\rest\routes;
use JVBase\JVB;
+use JVBase\managers\queue\executors\ContentExecutor;
+use JVBase\managers\queue\TypeConfig;
use JVBase\rest\RestRouteManager;
use JVBase\managers\CacheManager;
use JVBase\meta\MetaManager;
@@ -30,17 +32,38 @@
protected array $timelineSharedFields = [];
protected array $timelineUniqueFields = [];
- //TODO: Ensure we are handling the bulk operations for all processes
- //TODO: Also invalidate feed caches on updates!!
-
public function __construct()
{
$this->cache_name = 'user_content_' . get_current_user_id();
parent::__construct();
- $this->cache->clear();
+ if (JVB_TESTING) {
+ $this->cache->clear();
+ }
+
$this->action = 'dash-';
$this->operation_type = 'content_update';
- add_filter(BASE . 'handle_bulk_operation', [$this, 'processOperation'], 10, 3);
+ add_action('init', [$this, 'registerContentExecutors'], 5);
+ }
+
+ /**
+ * Register content operation types with the queue's TypeRegistry
+ */
+ public function registerContentExecutors(): void
+ {
+ $registry = JVB()->queue()->registry();
+ $executor = new ContentExecutor();
+
+ // Content updates - chunked at 10 posts
+ $registry->register('content_update', new TypeConfig(
+ executor: $executor,
+ chunkKey: 'posts',
+ chunkSize: 10
+ ));
+
+ // Batch creation (from uploads)
+ $registry->register('batch_creation', new TypeConfig(
+ executor: $executor
+ ));
}
/**
@@ -593,6 +616,8 @@
return ['success' => false, 'message' => 'No permission'];
}
+ error_log('[Processing Timeline Post...');
+
$ignore = ['content', 'user'];
$this->fields = jvbGetFields($post_data['content']);
$this->initTimelineFields($post_data['content']);
@@ -681,7 +706,8 @@
]);
$prevDate = null;
-
+ $latest_date = null;
+ $earliest_date = null;
foreach ($post_data['timeline'] as $order => $timeline) {
// Get unique fields for this specific timeline entry
$allowedFields = array_filter($timeline, function ($key) use ($ignore) {
--
Gitblit v1.10.0