118 lines
8 KiB
PHP
118 lines
8 KiB
PHP
<header class="navbar @auth('backend') navbar-expand-md @else navbar-expand @endauth position-fixed fixed-top bg-body-tertiary shadow-sm"
|
|
id="top-navbar">
|
|
<div class="container-fluid">
|
|
{{-- BUTTON MENU NAVIGATION --}}
|
|
@auth('backend')
|
|
<button class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#menuNavigation" type="button" aria-controls="menuNavigation"
|
|
aria-expanded="false" aria-label="{{ __('Afficher/Masquer le menu de navigation') }}">
|
|
<i class="fa-solid fa-ellipsis-vertical fa-lg"></i>
|
|
</button>
|
|
@endauth
|
|
<a class="navbar-brand fs-4 fw-bold @canAny(['isConceptor', 'viewAny'], \App\Models\User::class) border-md-end @endcan me-md-2 pe-md-3 m-0 p-0"
|
|
data-bs-toggle="tooltip" data-bs-placement="bottom" href="{{ route('fo.home.show') }}"
|
|
title="{{ __('Accéder au front du projet') }}" target="_blank">
|
|
{{ config('app.name', 'Laravel') }}
|
|
</a>
|
|
{{-- BUTTON MENU USER --}}
|
|
@auth('backend')
|
|
<button class="navbar-toggler" data-bs-toggle="offcanvas" data-bs-target="#menuUser" type="button" aria-controls="menuUser"
|
|
aria-expanded="false" aria-label="{{ __('Afficher/Masquer le menu d\'utilisateur') }}">
|
|
<span class="navbar-toggler-icon fa-sm"></span>
|
|
</button>
|
|
@endauth
|
|
{{-- MENU USER --}}
|
|
<div class="offcanvas offcanvas-end" id="menuUser" aria-labelledby="menuUserContent" tabindex="-1">
|
|
<div class="offcanvas-header border border-top-0 border-start-0 border-end-0 border-2 border-secondary">
|
|
<h5 class="offcanvas-title" id="menuUserContent">{{ __('Menu utilisateur') }}</h5>
|
|
<button class="btn-close" data-bs-dismiss="offcanvas" type="button" aria-label="Close"></button>
|
|
</div>
|
|
<div class="offcanvas-body">
|
|
<!-- Left Side Of Navbar -->
|
|
@canAny(['isConceptor', 'viewAny'], \App\Models\User::class)
|
|
<ul class="navbar-nav me-auto">
|
|
@can('viewAny', \App\Models\User::class)
|
|
<li class="nav-item">
|
|
<a class="nav-link d-flex align-items-center h-100 @if (request()->routeIs('bo.users.*')) active @endif"
|
|
data-bs-toggle="tooltip" href="{{ route('bo.users.index') }}"
|
|
title="{{ __('crud.helpers.list_all', ['model' => Str::plural(__('models.classes.user'))]) }}">
|
|
{{ Str::of(__('models.classes.user'))->plural()->ucfirst() }}
|
|
</a>
|
|
</li>
|
|
@endcan
|
|
@can('isConceptor')
|
|
<li class="nav-item">
|
|
<a class="nav-link d-flex align-items-center h-100 @if (request()->routeIs('bo.activity_logs.*')) active @endif"
|
|
data-bs-toggle="tooltip" href="{{ route('bo.activity_logs.index') }}"
|
|
title="{{ __('crud.helpers.list_all', ['model' => trans_choice('models.classes.activity_log', '*')]) }}">
|
|
{{ Str::of(trans_choice('models.classes.activity_log', '*'))->ucfirst() }}
|
|
</a>
|
|
</li>
|
|
@endcan
|
|
</ul>
|
|
@endcan
|
|
<!-- Right Side Of Navbar -->
|
|
<ul class="navbar-nav ms-auto">
|
|
<!-- Bootstrap themes -->
|
|
<li class="nav-item dropdown @auth('backend') border-md-end @endauth">
|
|
<button class="btn nav-link dropdown-toggle d-flex align-items-center h-100 flex-row border-0 pe-3"
|
|
data-bs-toggle="dropdown" type="button" aria-expanded="false" aria-label="Changer les couleurs de l'interface du back-office">
|
|
<span class="fa-solid fa-paint-roller"></span>
|
|
</button>
|
|
<form class="dropdown-menu dropdown-menu-end text-center" id="theme-selector" action="{{ route('bo.theme.set') }}"
|
|
method="POST">
|
|
@push('scripts')
|
|
<script @if (!empty($nonce)) nonce="{{ $nonce }}" @endif>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const themeSelector = document.getElementById('theme-selector');
|
|
if (themeSelector) {
|
|
themeSelector.addEventListener('change', function() {
|
|
this.submit();
|
|
});
|
|
}
|
|
});
|
|
</script>
|
|
@endpush
|
|
@csrf
|
|
@php $theme = intval(Cache::get('theme')); @endphp
|
|
@foreach (\App\Enums\Theme\BootstrapThemeEnum::toArray() as $key => $bootstrapTheme)
|
|
<input class="d-none form-check-input" id="theme{{ $key }}" name="theme" type="radio"
|
|
value="{{ $bootstrapTheme->value }}">
|
|
<label class="dropdown-item w-100 text-decoration-none @if ($bootstrapTheme->value === intval(Cache::get('theme'))) active @endif p-2"
|
|
for="theme{{ $key }}" role="button">
|
|
{{ Str::of($bootstrapTheme->label)->ucFirst() }}
|
|
</label>
|
|
@endforeach
|
|
</form>
|
|
</li>
|
|
<!-- Authentication Links -->
|
|
@auth('backend')
|
|
<li class="nav-item dropdown">
|
|
<button class="btn nav-link dropdown-toggle d-flex align-items-center h-100 ps-md-3 flex-row border-0" id="navbarDropdown"
|
|
data-bs-toggle="dropdown" type="button">
|
|
<div class="d-flex flex-column align-items-start align-items-md-end lh-1">
|
|
<span
|
|
class="fw-bold">{{ auth('backend')->user()->first_name }} {{ auth('backend')->user()->last_name }}</span>
|
|
<small class="text-secondary-body">{{ Str::of(auth('backend')->user()->role->label())->ucFirst() }}</small>
|
|
</div>
|
|
</button>
|
|
<div class="dropdown-menu dropdown-menu-end m-0 text-center" aria-labelledby="navbarDropdown">
|
|
<a class="dropdown-item w-100 text-decoration-none p-2" data-bs-toggle="tooltip" data-bs-placement="left"
|
|
href="{{ route('bo.users.edit',auth('backend')->user()->getKey()) }}" title="{{ __('Accéder à son profile') }}">
|
|
{{ __('Profile') }}
|
|
</a>
|
|
<hr class="dropdown-divider m-0">
|
|
<form class="m-0 text-center" id="logout-form" action="{{ route('bo.logout') }}" method="POST">
|
|
@csrf
|
|
<button class="dropdown-item w-100 text-decoration-none p-2" data-bs-toggle="tooltip" data-bs-placement="left"
|
|
type="submit" title="{{ __('Se déconnecter du back-office') }}">
|
|
{{ __('Déconnexion') }}
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</li>
|
|
@endauth
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</header>
|