112 lines
8.6 KiB
PHP
112 lines
8.6 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}" class="dark">
|
|
<head>
|
|
@include('partials.head')
|
|
</head>
|
|
<body class="min-h-screen bg-white dark:bg-zinc-800">
|
|
<div class="flex h-screen">
|
|
<!-- Sidebar -->
|
|
<div class="w-64 bg-zinc-50 dark:bg-zinc-900 border-r border-zinc-200 dark:border-zinc-700">
|
|
<div class="p-6">
|
|
<a href="{{ route('dashboard') }}" class="flex items-center space-x-2" wire:navigate>
|
|
<x-app-logo />
|
|
</a>
|
|
</div>
|
|
|
|
<nav class="mt-6 px-6">
|
|
<div class="space-y-1">
|
|
<div class="text-xs font-semibold text-zinc-500 uppercase tracking-wider mb-3">Platform</div>
|
|
<a href="{{ route('dashboard') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('dashboard') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Dashboard') }}
|
|
</a>
|
|
</div>
|
|
|
|
<div class="space-y-1 mt-6">
|
|
<div class="text-xs font-semibold text-zinc-500 uppercase tracking-wider mb-3">GPS Tracking</div>
|
|
<a href="{{ route('devices.index') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('devices.*') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Devices') }}
|
|
</a>
|
|
<a href="{{ route('live-tracking') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('live-tracking') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Live Tracking') }}
|
|
</a>
|
|
<a href="{{ route('geofences.index') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('geofences.*') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Geofences') }}
|
|
</a>
|
|
<a href="{{ route('events.index') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('events.*') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Events & Alerts') }}
|
|
</a>
|
|
<a href="{{ route('reports.index') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('reports.*') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Reports') }}
|
|
</a>
|
|
<a href="{{ route('map-settings') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('map-settings') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Map Settings') }}
|
|
</a>
|
|
</div>
|
|
|
|
@can('admin panel')
|
|
<div class="space-y-1 mt-6">
|
|
<div class="text-xs font-semibold text-zinc-500 uppercase tracking-wider mb-3">Administration</div>
|
|
<a href="{{ route('admin.dashboard') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('admin.dashboard') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Admin Dashboard') }}
|
|
</a>
|
|
<a href="{{ route('admin.users') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('admin.users') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('User Management') }}
|
|
</a>
|
|
<a href="{{ route('admin.drivers') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('admin.drivers') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Driver Management') }}
|
|
</a>
|
|
<a href="{{ route('admin.commands') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('admin.commands') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Command Center') }}
|
|
</a>
|
|
<a href="{{ route('admin.notifications') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('admin.notifications') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Notification Center') }}
|
|
</a>
|
|
<a href="{{ route('admin.subscriptions') }}" class="flex items-center px-3 py-2 text-sm font-medium rounded-lg {{ request()->routeIs('admin.subscriptions') ? 'bg-zinc-200 dark:bg-zinc-800 text-zinc-900 dark:text-white' : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800' }}" wire:navigate>
|
|
{{ __('Subscriptions') }}
|
|
</a>
|
|
</div>
|
|
@endcan
|
|
</nav>
|
|
|
|
<!-- User Menu -->
|
|
<div class="absolute bottom-0 left-0 w-64 p-6 border-t border-zinc-200 dark:border-zinc-700">
|
|
<div class="flex items-center space-x-3">
|
|
<div class="flex-shrink-0">
|
|
<div class="w-8 h-8 bg-zinc-300 dark:bg-zinc-600 rounded-full flex items-center justify-center">
|
|
<span class="text-sm font-medium text-zinc-700 dark:text-zinc-300">
|
|
{{ auth()->user()->initials() }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="flex-1 min-w-0">
|
|
<p class="text-sm font-medium text-zinc-900 dark:text-white truncate">
|
|
{{ auth()->user()->name }}
|
|
</p>
|
|
<p class="text-xs text-zinc-500 dark:text-zinc-400 truncate">
|
|
{{ auth()->user()->email }}
|
|
</p>
|
|
</div>
|
|
<form method="POST" action="{{ route('logout') }}">
|
|
@csrf
|
|
<button type="submit" class="text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200">
|
|
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1" />
|
|
</svg>
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Main content -->
|
|
<div class="flex-1 overflow-hidden">
|
|
<main class="p-6 h-full overflow-y-auto">
|
|
{{ $slot }}
|
|
</main>
|
|
</div>
|
|
</div>
|
|
|
|
@livewireScripts
|
|
</body>
|
|
</html>
|