From 4089ba01e0881c89a72332e13bc3a80b6bddec2a Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 29 Jun 2026 22:15:55 +0000
Subject: [PATCH] =DashboardManager overhaul. A bit easier to modify the output of pages. Still have to get the account pages to work as expected, as well as verify the integrations and others are working - but registrar/content pages work as expected. Also fixed up the table generation in CRUD.js and CRUDSkeleton.php

---
 inc/rest/Rest.php |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/inc/rest/Rest.php b/inc/rest/Rest.php
index 3357ca4..89f0343 100644
--- a/inc/rest/Rest.php
+++ b/inc/rest/Rest.php
@@ -4,7 +4,7 @@
 use JVBase\managers\Cache;
 use JVBase\meta\Meta;
 use JVBase\registrar\Registrar;
-use JVBase\utility\Features;
+use JVBase\base\Site;
 use WP_REST_Request;
 use WP_REST_Response;
 use Exception;
@@ -39,9 +39,15 @@
 			$this->cache = Cache::for($this->cacheName, $this->cacheTtl);
 		}
 
-		add_action('rest_api_init', [$this, 'registerRoutes']);
+		add_action('rest_api_init', [$this, 'registerRoutes'], 10);
+		add_action('rest_api_init', [$this, 'ensureDefinitions'], 9);
 	}
 
+	public function ensureDefinitions():void
+	{
+		Site::getInstance();
+		Registrar::ensureInstanced();
+	}
 	/**
 	 * Register routes - implement using Route builder
 	 */
@@ -224,7 +230,7 @@
 
 		// Keep existing author filtering logic
 		$authorQuery = [];
-		foreach (Registrar::getFeatured('can_create', 'user') as $type) {
+		foreach (Registrar::withFeature('can_create', 'user') as $type) {
 			if (array_key_exists($type, $data)) {
 				$artist_ids = array_map(
 					'absint',
@@ -537,7 +543,7 @@
 			return false;
 		}
 		$post_types = is_array($args['post_type']) ? $args['post_type'] : [$args['post_type']];
-		$hasTimeline = array_map(function($item) { return jvbCheckBase($item); },Registrar::getFeatured('is_timeline', 'post'));
+		$hasTimeline = array_map(function($item) { return jvbCheckBase($item); },Registrar::withFeature('is_timeline', 'post'));
 		return !empty(array_intersect($post_types, $hasTimeline));
 	}
 	// =========================================================================
@@ -549,7 +555,7 @@
 	 */
 	protected function verifyTurnstile(string $token): bool
 	{
-		if (!Features::hasIntegration('cloudflare') || !JVB()->connect('cloudflare')->isSetUp()) {
+		if (!Site::hasIntegration('cloudflare') || !JVB()->connect('cloudflare')->isSetUp()) {
 			return true;
 		}
 

--
Gitblit v1.10.0