From 474109a5df0a06f5343ab184838fe2d80e3872a8 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 11 Jan 2026 19:23:20 +0000
Subject: [PATCH] =Fixed timeline CRUD.js issue where this.activeItem was set null when we still needed it

---
 inc/managers/OperationQueue.php |   63 +------------------------------
 1 files changed, 2 insertions(+), 61 deletions(-)

diff --git a/inc/managers/OperationQueue.php b/inc/managers/OperationQueue.php
index 182ca97..0c5f1b0 100644
--- a/inc/managers/OperationQueue.php
+++ b/inc/managers/OperationQueue.php
@@ -12,21 +12,6 @@
     exit; // Exit if accessed directly
 }
 
-//TODO: Register a server cron job for jvb_process_queue
-//  1) Log in to your Ploi dashboard
-//  2) Navigate to your server and select the site where Edmonton Ink is installed
-//  3) Go to the "Cron Jobs" tab in the site management interface
-//  4) Click "Create Cron Job" to add a new scheduled task
-//  5) Configure the cron job with these settings:
-//      - Command: Use the WP-CLI to trigger your custom wp cron event:
-//          cd /path/to/your/wordpress && php wp-cli.phar cron event run jvb_process_queue
-//      - Or if WP-CLI is installed globally:
-//          cd /path/to/your/wordpress && wp cron event run ei_process_queue
-//      - User: Select the appropriate system user (usually the one associated with your site)
-//      - Frequency: Set to run every 5 minutes for queue processing:
-//            */5 * * * *
-
-
 //# Every minute - main queue processing
 //* * * * * cd /path/to/wordpress && wp cron event run jvb_process_queue
 //
@@ -136,7 +121,6 @@
     {
         switch ($action) {
             case 'unlock-operation-queue':
-				error_log('Unlocking Queue from admin action');
                 $this->unlockQueue();
                 return new WP_REST_Response([
                     'success'   => true,
@@ -203,7 +187,6 @@
 			return;
 		}
 
-		error_log('[queue] Checking queue...');
 
 		// Peek at what operations we might process
 		$batch_size = $this->getAdaptiveBatchSize();
@@ -433,12 +416,7 @@
 	{
 		try {
 			$table = $this->wpdb->prefix . $this->table;
-			error_log('QUEUING OPERATION: '.print_r([
-				'type' => $type,
-					'user_id' => $user_id,
-					'data' => $data,
-					'options' => $options,
-				],true));
+
 			// Extract options
 			$priority = (array_key_exists('priority', $options) && in_array($options['priority'], ['low', 'normal', 'high'])) ? $options['priority'] : 'normal';
 			$delay = (array_key_exists('delay', $options)) ? (int) $options['delay'] : 0;
@@ -469,10 +447,8 @@
 			// Generate operation ID
 			$operation_id = $this->checkOperationId($operation_id, $type, $merge, $user_id);
 
-			error_log('Checked OperationId: '.print_r($operation_id, true));
 			// Check for existing operation
 			$existing = $this->getOperation($operation_id);
-			error_log('Existing: '.print_r($existing, true));
 
 			$dependencies = $options['depends_on'] ?? [];
 			if (is_string($dependencies)) {
@@ -491,10 +467,9 @@
 			}
 
 			if ($existing) {
-				error_log('[queue]:queueOperation - Already Existing operation... updating');
 
 				if ($merge !== 'append' && ($existing->status === 'pending' || $existing->status === 'scheduled')) {
-					error_log('Not appending operation, checking for merge');
+
 					if ($merge === 'merge') {
 						$existing_data = json_decode($existing->request_data ?? '{}', true);
 						$data = $this->deepMerge($existing_data, $data);
@@ -542,14 +517,12 @@
 					}
 
 				} else if ($merge === 'append') {
-					error_log('Append operation, creating a new one');
 					$operation_id = $operation_id . '_' . time() . '_' . substr(uniqid(), -4);
 					$existing = null;
 				}
 			}
 
 			if (!$existing) {
-				error_log('Inserting new operation into table');
 				// Prepare metadata with chunk config
 				$metadata = $chunk_config ? ['chunk_config' => $chunk_config] : [];
 
@@ -592,7 +565,6 @@
 			];
 
 		} catch (Exception $e) {
-			error_log("Error queueing operation: " . $e->getMessage());
 			JVB()->error()->log('queue', $e->getMessage(), $data, 'high');
 			return new WP_Error('queue_failed', $e->getMessage());
 		}
@@ -607,10 +579,8 @@
 		$merged = $existing;
 
 		if (!$this->isAssociativeArray($existing) && !$this->isAssociativeArray($new)) {
-			error_log('It is an associative array!');
 			return array_merge($existing, $new);
 		}
-		error_log('Not an associative array... moving on!');
 		foreach ($new as $key => $newValue) {
 			if (!array_key_exists($key, $existing)) {
 				$merged[$key] = $newValue;
@@ -722,19 +692,16 @@
 					'limit' => 1
 				]);
 			if ($existing) {
-				error_log('Found existing User operations: '.print_r($existing, true));
 				$operation_id = $existing[0]->id;
 			}
 		}
 
 		if (!$operation_id) {
 			$operation_id = uniqid('op_');
-			error_log('Generated operation ID: '.print_r($operation_id, true));
 		}
 
 		if (!str_starts_with($operation_id, 'u')) {
 			$operation_id = 'u' . $user_id . '_' . $operation_id;
-			error_log('Added user ID to operation ID: '.print_r($operation_id, true));
 		}
 
 		return $operation_id;
@@ -745,7 +712,6 @@
 	{
 		// Only add if not already scheduled AND if operation is high priority or small
 		if (!has_action('shutdown', [$this, 'processQueueOnShutdown'])) {
-			error_log('Adding shutdown call');
 			add_action('shutdown', [$this, 'processQueueOnShutdown'], 100);
 		}
 	}
@@ -910,7 +876,6 @@
 	protected function canProcessOperation(object $operation): bool
 	{
 		if ($operation->retries >= $this->max_attempts) {
-			error_log("Operation {$operation->id} exceeded retry limit: {$operation->retries} >= {$this->max_attempts}");
 			$this->markAsPermanentlyFailed($operation->id, 'Exceeded maximum retry attempts');
 			return false;
 		}
@@ -943,7 +908,6 @@
 
 		if ($result) {
 			$this->invalidateQueueCache('status');
-			error_log("Marked operation {$operation_id} as permanently failed: {$final_error_message}");
 		}
 	}
 
@@ -1143,14 +1107,6 @@
 			['%s']
 		);
 
-		// Log retry schedule
-		error_log(sprintf(
-			"Operation %s scheduled for retry #%d at %s (delay: %ds)",
-			$operation_id,
-			$attempt,
-			$scheduled_at,
-			$delay
-		));
 	}
 
     /**
@@ -1277,8 +1233,6 @@
 				];
 			}
 
-			error_log('Filtered Result: '.print_r($filterResult, true));
-
 			$newCount = $progress_count + $chunk['progress'];
 
 			if ($filterResult['success']) {
@@ -1292,12 +1246,7 @@
 					$filterResult['result'] = [$filterResult['result']];
 				}
 				// Store the result data
-				error_log('Merging Old Result: '. print_r($oldResult, true));
-				error_log('With Newer Result: '. print_r($filterResult['result'], true));
 				$resultToStore = $this->deepMerge($oldResult, $filterResult['result']);
-
-				error_log('Merged Result: '.print_r($resultToStore, true));
-
 				$resultToStore['processed_at'] = current_time('mysql');
 
 				// Check if operation is complete
@@ -1318,10 +1267,6 @@
 						['%s']
 					);
 
-
-
-
-					error_log('Completion result: '.print_r($result, true));
 					// Now do post-completion tasks
 					$this->invalidateQueueCache('status');
 					$this->updateLastModified($operation->user_id);
@@ -2073,8 +2018,6 @@
         ", $this->max_attempts));
 
 		if (!empty($stuck_operations)) {
-			error_log("Found " . count($stuck_operations) . " stuck operations to clean up");
-
 			foreach ($stuck_operations as $operation) {
 				$this->markAsPermanentlyFailed(
 					$operation->id,
@@ -2091,8 +2034,6 @@
         ", date('Y-m-d H:i:s', strtotime('-1 hour'))));
 
 		if (!empty($long_processing)) {
-			error_log("Found " . count($long_processing) . " long-running operations to reset");
-
 			foreach ($long_processing as $operation) {
 				$this->wpdb->update($table, [
 					'status' => 'pending',

--
Gitblit v1.10.0