Files
BRISTO/resources/views/layouts/app.blade.php

130 lines
6.6 KiB
PHP

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ config('app.name', 'DSIGEST') }}</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet">
@vite(['resources/css/app.scss', 'resources/js/app.js'])
</head>
<body>
<div id="app">
<!-- Sidebar -->
<nav class="sidebar">
<div class="sidebar-brand">
<a class="text-decoration-none d-flex align-items-center" href="{{ route('dashboard') }}">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="me-2">
<path d="M12 2L2 7L12 12L22 7L12 2Z" stroke="#727cf5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2 17L12 22L22 17" stroke="#727cf5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2 12L12 17L22 12" stroke="#727cf5" stroke-opacity="0.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span class="brand-text">BRISTO</span>
</a>
</div>
<div class="d-flex flex-column py-3">
<div class="sidebar-heading">Menu</div>
<a class="nav-link {{ request()->routeIs('dashboard') ? 'active' : '' }}" href="{{ route('dashboard') }}">
<i class="bi bi-speedometer2"></i> Dashboard
</a>
<a class="nav-link {{ request()->routeIs('contracts.*') ? 'active' : '' }}" href="{{ route('contracts.index') }}">
<i class="bi bi-file-earmark-text"></i> Contrats
</a>
<a class="nav-link {{ request()->routeIs('municipalities.*') ? 'active' : '' }}" href="{{ route('municipalities.index') }}">
<i class="bi bi-building"></i> Communes
</a>
<a class="nav-link {{ request()->routeIs('cortex.*') ? 'active' : '' }}" href="{{ route('cortex.index') }}">
<i class="bi bi-shield-lock"></i> Cortex XDR
</a>
@auth
@if(auth()->user()->isAdmin())
<div class="sidebar-heading mt-3">Administration</div>
<a class="nav-link {{ request()->routeIs('admin.municipalities.*') ? 'active' : '' }}" href="{{ route('admin.municipalities.index') }}">
<i class="bi bi-gear"></i> Gérer Communes
</a>
<a class="nav-link {{ request()->routeIs('admin.license_levels.*') ? 'active' : '' }}" href="{{ route('admin.license_levels.index') }}">
<i class="bi bi-microsoft"></i> Licences M365
</a>
<a class="nav-link {{ request()->routeIs('admin.users.*') ? 'active' : '' }}" href="{{ route('admin.users.index') }}">
<i class="bi bi-people"></i> Utilisateurs
</a>
<a class="nav-link {{ request()->routeIs('admin.links.*') ? 'active' : '' }}" href="{{ route('admin.links.index') }}">
<i class="bi bi-link-45deg"></i> Gérer Liens
</a>
@endif
@endauth
</div>
</nav>
<!-- Main Content -->
<main class="main-content">
<!-- Topbar -->
<header class="topbar justify-content-between">
<div>
<!-- Breadcrumbs or Title could go here -->
<h4 class="mb-0 text-white">@yield('title', 'Dashboard')</h4>
</div>
<div class="d-flex align-items-center">
@guest
<a class="btn btn-primary btn-sm me-2" href="{{ route('login') }}">Connexion</a>
<a class="btn btn-outline-light btn-sm" href="{{ route('register') }}">Inscription</a>
@else
<div class="dropdown">
<a class="d-flex align-items-center text-white text-decoration-none dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">
<i class="bi bi-person-circle fs-4 me-2"></i>
<span>{{ Auth::user()->name }}</span>
</a>
<ul class="dropdown-menu dropdown-menu-end bg-dark border-secondary">
<li>
<form action="{{ route('logout') }}" method="POST">
@csrf
<button type="submit" class="dropdown-item text-light hover-primary">
<i class="bi bi-box-arrow-right me-2"></i> Déconnexion
</button>
</form>
</li>
</ul>
</div>
@endguest
</div>
</header>
<!-- Page Content -->
<div class="container-fluid px-4 pb-4">
@if(session('success'))
<div class="alert alert-success alert-dismissible fade show" role="alert">
{{ session('success') }}
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
@endif
@if(session('error'))
<div class="alert alert-danger alert-dismissible fade show" role="alert">
{{ session('error') }}
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
@endif
@yield('content')
</div>
<!-- Footer -->
<footer class="mt-auto py-3 border-top border-secondary text-center small text-muted">
&copy; {{ date('Y') }} {{ config('app.name', 'DSIGEST') }}. Tous droits réservés.
</footer>
</main>
</div>
</body>
</html>