Jake Vanderwerf
2026-08-25 3d25ad7de4fdbb3eba2cde2a62422e6be5d79a0a
inc/admin/Integrations.php
@@ -1,7 +1,10 @@
<?php
namespace JVBase\admin;
use JVBase\base\Site;
use JVBase\integrations\ServiceMap;
use JVBase\managers\IconsManager;
use JVBase\registrar\Registrar;
if (!defined('ABSPATH')) {
   exit;
@@ -9,11 +12,14 @@
class Integrations
{
   use ServiceMap;
   public function __construct()
   {
      // 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);
   }
   /**
@@ -32,17 +38,15 @@
      );
      // Add submenu pages for configured integrations
      $integrations = JVB()->getAvailableServices(false);
      foreach($integrations as $service => $integration) {
//       if ($integration->isSetUp() && !empty($integration->enabledContentTypes())) {
         if (!empty($integration->enabledContentTypes())) {
      foreach ($this->getAvailableServices() as $service) {
         $integration = $this->getService($service);
         if ($integration->isSetUp() && method_exists($integration, 'getAllowedContent') && !empty($integration->getAllowedContent())) {
            add_submenu_page(
               'jvb-integrations',
               $integration->getTitle() . ' Defaults',
               $integration->getTitle(),
               'manage_options',
               'jvb-integration-'.$service,
               'jvb-integration-'.$integration->getServiceName(),
               [$integration, 'renderDefaults']
            );
         }
@@ -73,12 +77,12 @@
      IconsManager::for()->enqueueIconStyles();
      IconsManager::for('dash')->enqueueIconStyles();
      IconsManager::for('form')->enqueueIconStyles();
      IconsManager::for('forms')->enqueueIconStyles();
      $queue = [
         'api' => rest_url('jvb/v1/'),
         'redirect' => wp_login_url(home_url(add_query_arg(null, null))),
         'labels' => jvbGetLabels(),
         'labels' => Registrar::getLabels(),
      ];
      wp_localize_script('jvb-auth', 'jvbSettings', $queue);
@@ -94,6 +98,10 @@
//    );
   }
   public function renderDashPage():void
   {
      $this->renderPage();
   }
   /**
    * Render the main integrations page
    */
@@ -106,23 +114,30 @@
         <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();
            ?>
            <div class="item-grid integrations">
               <?php
               $integrations = JVB()->getAvailableServices(false);
               foreach ($this->getAvailableServices() as $service) {
                  $integration = $this->getService($service);
                  if ($integration->isSetUp() && method_exists($integration, 'renderConnection')) {
                     $integration->renderConnection();
                  }
               }
               foreach ($integrations as $service => $integration):
                  $integration->renderConnection();
               endforeach;
               ?>
            </div>
         </div>
      </div>
      <?php $this->renderStyles(); ?>
      <?php if (is_admin()) {
         $this->renderStyles();
      } ?>
      <?php
   }
@@ -402,10 +417,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 {