@extends('layouts/default') @section('title') {{ trans('admin/settings/sync_adapters.title') }} @parent @stop @section('content') {{-- Company filter. Reloads the page with ?company=blah so only adapters scoped to the picked company show in the tab list. 'shared' filters to adapters with no company_id (available to all). Placed above the box and right-aligned so it lines up with the box's right edge and reads as a view filter rather than a per-adapter setting, without stealing space from either the box's title or the tab strip beneath it. Only rendered when at least one company exists, since on single-tenant installs the filter would only ever show "All" and "Shared" and is pure noise. --}} @if ($hasCompanies)
@endif {{ trans('admin/settings/sync_adapters.title') }} beta
@foreach ($adapters as $adapter)
$selected?->name() === $adapter->name()]) >
@endforeach
$selected === null]) >
{{ trans('admin/settings/sync_adapters.experimental_banner_body') }}

{{ trans('admin/settings/sync_adapters.empty_state_title') }}

{{ trans('admin/settings/sync_adapters.empty_state_intro') }}

{{ trans('admin/settings/sync_adapters.empty_state_supported_intro', ['count' => count($adapterCatalog)]) }}

    @foreach ($adapterCatalog as $slug => $entry)
  • @if ($entry['docs_url']) @php $docsLinkLabel = trans('admin/settings/sync_adapters.catalog_docs_link_label', ['adapter' => $entry['label']]); @endphp @else {{ trans('admin/settings/sync_adapters.catalog_docs_none') }} @endif {{ $entry['label'] }}
  • @endforeach

{{ trans('admin/settings/sync_adapters.empty_state_company_title') }}

{{ trans('admin/settings/sync_adapters.empty_state_company_intro') }}

{{ trans('admin/settings/sync_adapters.empty_state_company_clone_note') }}

{{-- The whole footer collapses when Help (or any non-adapter tab) is active, since Save / Delete / Clone are all adapter-scoped actions and leaving the padded strip visible reads as a blank UI dead-zone. Tab-switch JS below flips the display back on when an adapter tab becomes active. --}}
{{-- Add-adapter modal. Users add additional instances of the shipped adapter types (a second Fleet install, another Kandji tenant, etc.) or Generic REST once/if that adapter lands. --}} {{-- Pre-select the currently-filtered company so admins clicking "Add adapter" while viewing a specific company get that company already selected. The 'shared' filter sentinel and absent values leave the modal's company field empty. --}} {{-- Clone-adapter modal. The form action + prefilled label switch per-active-tab via the tab-switch JS below so a single modal serves every adapter. New instance starts inactive and blank on company so the admin makes deliberate choices before turning it on. --}} @stop