87 lines
6.2 KiB
PHP
87 lines
6.2 KiB
PHP
@php
|
|
$headerContent = $headerContent ?? [];
|
|
$menuLocation = $headerContent['menu_location'] ?? 'primary';
|
|
$navigationLinks = app(\Modules\Stylist\Support\FrontendNavigation::class)->location($menuLocation, $primaryNavigation ?? []);
|
|
$brandUrl = $siteSettings['site_url'] ?: url('/');
|
|
$mobileMenuId = 'saasland-mobile-navigation';
|
|
@endphp
|
|
|
|
<header class="nav cms-editable-header" data-saasland-header>
|
|
<a href="{{ $brandUrl }}" class="logo cms-brand" aria-label="{{ $siteTitle }} home">
|
|
@if ($logoUrl)<img src="{{ $logoUrl }}" alt="{{ $siteTitle }}">@else{{ $siteTitle }}@endif
|
|
</a>
|
|
|
|
@if (filter_var($headerContent['show_navigation'] ?? true, FILTER_VALIDATE_BOOL))
|
|
<nav class="desktop-nav" aria-label="Primary navigation">
|
|
@foreach ($navigationLinks as $link)
|
|
@if (strtolower(trim($link['label'])) !== 'products' && strtolower(trim($link['label'])) !== 'sonardesk')
|
|
@if (!empty($link['children']))
|
|
<details class="abs-nav-group"><summary>{{ $link['label'] }}</summary><div class="abs-nav-panel">
|
|
@foreach ($link['children'] as $child)
|
|
<a href="{{ $child['url'] }}" @if($child['target'] ?? null) target="{{ $child['target'] }}" rel="noopener" @endif>{{ $child['label'] }}</a>
|
|
@endforeach
|
|
</div></details>
|
|
@else
|
|
<a href="{{ $link['url'] }}" @if($link['target'] ?? null) target="{{ $link['target'] }}" rel="noopener" @endif>{{ $link['label'] }}</a>
|
|
@endif
|
|
@endif
|
|
@endforeach
|
|
<details class="abs-nav-group abs-products"><summary>Products <span aria-hidden="true">⌄</span></summary>
|
|
<div class="abs-nav-panel">
|
|
<a href="{{ route('absdev.sonardesk.home') }}"><strong>SonarDesk</strong><small>Native SonarQube dashboard for Mac</small></a>
|
|
<a href="{{ route('absdev.sonardesk.features') }}">Features</a>
|
|
<a href="{{ route('absdev.sonardesk.pricing') }}">Pricing</a>
|
|
<a href="{{ route('sonardesk.downloads') }}">Downloads & releases</a>
|
|
</div>
|
|
</details>
|
|
</nav>
|
|
@endif
|
|
<style>
|
|
.abs-nav-group{position:relative;display:flex;align-items:center}
|
|
.abs-nav-group summary{list-style:none;cursor:pointer;color:#ddd;font-size:14px;white-space:nowrap}
|
|
.abs-nav-group summary::-webkit-details-marker{display:none}
|
|
.abs-nav-group[open] summary,.abs-nav-group summary:hover{color:#e5b95b}
|
|
.abs-nav-panel{position:absolute;top:calc(100% + 20px);left:0;width:280px;z-index:100;background:#131d30;border:1px solid #35415a;border-radius:12px;box-shadow:0 22px 45px #0008;padding:9px;display:grid;gap:2px}
|
|
.abs-nav-panel a{display:block!important;padding:10px 12px!important;color:#eaf0f9!important;border-radius:7px;font-size:13px!important}
|
|
.abs-nav-panel a:hover{background:#253550;color:#e5b95b!important}
|
|
.abs-nav-panel small{display:block;color:#aab8ce;font-size:11px}
|
|
.abs-mobile-products{padding:12px 16px;border-top:1px solid #3a3a3a;display:grid;gap:10px}
|
|
.abs-mobile-products strong{color:#e5b95b}.abs-mobile-products a{padding:5px 0!important}
|
|
</style>
|
|
|
|
<div class="nav-actions">
|
|
@auth
|
|
@if (filter_var($headerContent['show_dashboard'] ?? true, FILTER_VALIDATE_BOOL) && Route::has('dashboard'))
|
|
<a class="nav-account" href="{{ route('dashboard') }}">{{ $siteSettings['dashboard_label'] }}</a>
|
|
@endif
|
|
@if (filter_var($headerContent['show_user_name'] ?? true, FILTER_VALIDATE_BOOL))
|
|
<div class="account-menu" x-data="{ accountOpen: false }"><button type="button" class="account-trigger" @click="accountOpen=!accountOpen"><span>{{ str(auth()->user()->name)->substr(0,1)->upper() }}</span><span class="account-name">{{ auth()->user()->name }}</span></button><div class="account-dropdown" x-show="accountOpen" @click.outside="accountOpen=false" x-cloak>@if(Route::has('profile.edit'))<a href="{{ route('profile.edit') }}">Profile</a>@endif @if(Route::has('logout'))<form method="POST" action="{{ route('logout') }}">@csrf<button type="submit">Log out</button></form>@endif</div></div>
|
|
@endif
|
|
@else
|
|
@if (filter_var($headerContent['show_login'] ?? true, FILTER_VALIDATE_BOOL) && Route::has('login'))<a class="nav-login" href="{{ route('login') }}">{{ $siteSettings['login_label'] }}</a>@endif
|
|
@if (filter_var($headerContent['show_registration'] ?? true, FILTER_VALIDATE_BOOL) && Route::has('register'))<a class="btn primary nav-register" href="{{ route('register') }}">{{ $siteSettings['registration_label'] }}</a>@endif
|
|
@endauth
|
|
@if (filter_var($headerContent['show_mobile_menu'] ?? true, FILTER_VALIDATE_BOOL))
|
|
<button class="menu" type="button" aria-label="Open navigation" aria-controls="{{ $mobileMenuId }}" aria-expanded="false" data-saasland-menu-toggle><span></span><span></span><span></span></button>
|
|
@endif
|
|
</div>
|
|
</header>
|
|
@if (filter_var($headerContent['show_mobile_menu'] ?? true, FILTER_VALIDATE_BOOL))
|
|
<div id="{{ $mobileMenuId }}" class="mobile-nav" data-saasland-mobile-nav hidden>
|
|
@foreach($navigationLinks as $link)
|
|
@if (!in_array(strtolower(trim($link['label'])), ['products', 'sonardesk'], true))
|
|
<a href="{{ $link['url'] }}" @if($link['target'] ?? null) target="{{ $link['target'] }}" rel="noopener" @endif>{{ $link['label'] }}</a>
|
|
@foreach(($link['children'] ?? []) as $child)
|
|
<a href="{{ $child['url'] }}" style="padding-left:28px">{{ $child['label'] }}</a>
|
|
@endforeach
|
|
@endif
|
|
@endforeach
|
|
<div class="abs-mobile-products"><strong>Products · SonarDesk</strong>
|
|
<a href="{{ route('absdev.sonardesk.home') }}">Overview</a>
|
|
<a href="{{ route('absdev.sonardesk.features') }}">Features</a>
|
|
<a href="{{ route('absdev.sonardesk.pricing') }}">Pricing</a>
|
|
<a href="{{ route('sonardesk.downloads') }}">Downloads & releases</a>
|
|
</div>
|
|
</div>
|
|
@endif
|