Jake Vanderwerf
2026-08-28 a9654f00c8fbc9934289d761843ddd071025013f
inc/admin/Integrations.php
@@ -1,6 +1,7 @@
<?php
namespace JVBase\admin;
use JVBase\integrations\ServiceMap;
use JVBase\managers\IconsManager;
use JVBase\registrar\Registrar;
@@ -10,11 +11,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);
   }
   /**
@@ -33,17 +37,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']
            );
         }
@@ -95,6 +97,10 @@
//    );
   }
   public function renderDashPage():void
   {
      $this->renderPage();
   }
   /**
    * Render the main integrations page
    */
@@ -107,23 +113,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
   }
@@ -403,10 +416,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 {