From c68aefb847b09daa0697de7684d3451e2e68ce1e Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 09 Jul 2026 23:10:23 +0000
Subject: [PATCH] =Refactor of Integrations.php to be a bit more useful with a suite of methods for create, update, delete back and forths for integrations where sharing is enabled. Also considering a single instance with a connect method to connect as the site (no user) vs connecting as an individual user - rather than recreating instances for every user.

---
 inc/admin/Integrations.php |   59 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 42 insertions(+), 17 deletions(-)

diff --git a/inc/admin/Integrations.php b/inc/admin/Integrations.php
index 2604c8b..e190ac2 100644
--- a/inc/admin/Integrations.php
+++ b/inc/admin/Integrations.php
@@ -1,6 +1,9 @@
 <?php
 namespace JVBase\admin;
 
+use JVBase\managers\IconsManager;
+use JVBase\registrar\Registrar;
+
 if (!defined('ABSPATH')) {
 	exit;
 }
@@ -12,6 +15,7 @@
 		// Hook into WordPress admin
 		add_action('admin_menu', [$this, 'registerAdminPages']);
 		add_action('admin_enqueue_scripts', [$this, 'enqueueAdminAssets']);
+		add_action(BASE.'dashboard_page_integrations', [$this, 'renderDashPage'], 10);
 	}
 
 	/**
@@ -64,22 +68,38 @@
 		wp_enqueue_script(
 			'jvb-admin-scripts',
 			JVB_URL . 'assets/js/min/integrations.min.js',
-			[],
+			['jvb-auth'],
 			'1.0.0',
 			true
 		);
 
-		wp_localize_script(
-			'jvb-admin-scripts',
-			'jvbSettings',
-			[
-				'api'    => rest_url('jvb/v1/'),
-				'currentUser'	=> get_current_user_id(),
-				'nonce'  => wp_create_nonce('wp_rest'),
-			]
-		);
+		IconsManager::for()->enqueueIconStyles();
+		IconsManager::for('dash')->enqueueIconStyles();
+		IconsManager::for('forms')->enqueueIconStyles();
+
+		$queue = [
+			'api' => rest_url('jvb/v1/'),
+			'redirect' => wp_login_url(home_url(add_query_arg(null, null))),
+			'labels' => Registrar::getLabels(),
+		];
+
+		wp_localize_script('jvb-auth', 'jvbSettings', $queue);
+//
+//		wp_localize_script(
+//			'jvb-admin-scripts',
+//			'jvbSettings',
+//			[
+//				'api'    => rest_url('jvb/v1/'),
+//				'currentUser'	=> get_current_user_id(),
+//				'nonce'  => wp_create_nonce('wp_rest'),
+//			]
+//		);
 	}
 
+	public function renderDashPage():void
+	{
+		$this->renderPage();
+	}
 	/**
 	 * Render the main integrations page
 	 */
@@ -92,7 +112,10 @@
 			<div class="jvb-admin-content">
 				<?php
 				// Display any admin notices from form submissions
-				settings_errors('jvb_integrations');
+				if (is_admin()) {
+					settings_errors('jvb_integrations');
+				}
+
 				$this->displayNotices();
 				?>
 
@@ -108,7 +131,9 @@
 			</div>
 		</div>
 
-		<?php $this->renderStyles(); ?>
+		<?php if (is_admin()) {
+			$this->renderStyles();
+		} ?>
 		<?php
 	}
 
@@ -247,7 +272,7 @@
 				--mt: 1rem;
 				--mb: 1rem;
 				--setMargin: var(--mt) var(--mr) var(--mb) var(--ml);
-				--insetMargin: var(--mt) calc((var(--maxWidth) - var(--narrow)) / 2 + var(--mr)) var(--mb) var(--ml);
+				--insetMargin: var(--mt) calc((var(--content) - var(--narrow)) / 2 + var(--mr)) var(--mb) var(--ml);
 				--height: 4rem;
 				--doubleHeight: 8rem;
 				--offHeight: 5rem;
@@ -388,10 +413,10 @@
 
 
 				--scrollbar-width: 8px;
-				--scrollbar-track-color: var(--base-100);
-				--scrollbar-thumb-color: var(--action-0);
-				--scrollbar-thumb-hover-color: var(--action-50);
-				--scrollbar-thumb-border: 2px solid var(--base-50);
+				--scrollbar-track-color: rgb(var(--base-100));
+				--scrollbar-thumb-color: rgb(var(--action-0));
+				--scrollbar-thumb-hover-color: rgb(var(--action-50));
+				--scrollbar-thumb-border: 2px solid rgb(var(--base-50));
 				--scrollbar-border-radius: 4px;
 			}
 			.item-grid.integrations {

--
Gitblit v1.10.0