feat: refresh UI and add sidebar navigation
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
@php
|
||||
$user = auth()->user();
|
||||
$roleName = $user?->getRoleNames()->first() ?? 'user';
|
||||
$pendingTransferCount = $pendingTransferCount ?? 0;
|
||||
|
||||
$navItems = [
|
||||
[
|
||||
'label' => 'Peta Interaktif',
|
||||
'short' => 'Peta',
|
||||
'href' => url('/map'),
|
||||
'icon' => 'fa-map',
|
||||
'active' => request()->is('map'),
|
||||
],
|
||||
[
|
||||
'label' => 'Data Tabular',
|
||||
'short' => 'Data',
|
||||
'href' => url('/data'),
|
||||
'icon' => 'fa-table-list',
|
||||
'active' => request()->is('data'),
|
||||
],
|
||||
[
|
||||
'label' => 'Dashboard',
|
||||
'short' => 'Dashboard',
|
||||
'href' => url('/dashboard'),
|
||||
'icon' => 'fa-chart-bar',
|
||||
'active' => request()->is('dashboard'),
|
||||
],
|
||||
[
|
||||
'label' => 'Transfer',
|
||||
'short' => 'Transfer',
|
||||
'href' => url('/permohonan'),
|
||||
'icon' => 'fa-right-left',
|
||||
'active' => request()->is('permohonan'),
|
||||
'badge' => $pendingTransferCount,
|
||||
],
|
||||
];
|
||||
|
||||
$adminItems = [
|
||||
[
|
||||
'label' => 'Admin',
|
||||
'href' => url('/admin/users'),
|
||||
'icon' => 'fa-users-gear',
|
||||
'active' => request()->is('admin/users'),
|
||||
],
|
||||
[
|
||||
'label' => 'Log',
|
||||
'href' => url('/admin/logs'),
|
||||
'icon' => 'fa-clock-rotate-left',
|
||||
'active' => request()->is('admin/logs'),
|
||||
],
|
||||
[
|
||||
'label' => 'Pengaturan',
|
||||
'href' => url('/admin/settings'),
|
||||
'icon' => 'fa-sliders',
|
||||
'active' => request()->is('admin/settings'),
|
||||
],
|
||||
];
|
||||
@endphp
|
||||
|
||||
<input id="app-sidebar-toggle" type="checkbox" class="app-sidebar-toggle" autocomplete="off">
|
||||
|
||||
<header class="app-mobile-bar">
|
||||
<label for="app-sidebar-toggle" class="btn btn-ghost btn-square app-sidebar-open" aria-label="Buka navigasi">
|
||||
<i class="fa-solid fa-bars"></i>
|
||||
</label>
|
||||
<a href="{{ url('/') }}" class="app-mobile-brand">
|
||||
<i class="fa-solid fa-house-chimney-crack"></i>
|
||||
<span>WebGIS</span>
|
||||
</a>
|
||||
<div class="avatar placeholder">
|
||||
<div class="bg-primary text-primary-content rounded-full w-8">
|
||||
<span class="text-xs font-bold">{{ substr($user->name, 0, 1) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<label for="app-sidebar-toggle" class="app-sidebar-backdrop" aria-label="Tutup navigasi"></label>
|
||||
|
||||
<aside class="app-sidebar" aria-label="Navigasi utama">
|
||||
<div class="app-sidebar-header">
|
||||
<a href="{{ url('/') }}" class="app-sidebar-brand">
|
||||
<span class="app-brand-icon"><i class="fa-solid fa-house-chimney-crack"></i></span>
|
||||
<span class="app-brand-copy">
|
||||
<span class="app-brand-title">WebGIS</span>
|
||||
<span class="app-brand-subtitle">Pemetaan Kemiskinan</span>
|
||||
</span>
|
||||
</a>
|
||||
<label for="app-sidebar-toggle" class="btn btn-ghost btn-square app-sidebar-close" aria-label="Tutup navigasi">
|
||||
<i class="fa-solid fa-xmark"></i>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<nav class="app-sidebar-nav">
|
||||
<div class="app-nav-section">
|
||||
<div class="app-nav-section-title">Menu</div>
|
||||
@foreach($navItems as $item)
|
||||
<a href="{{ $item['href'] }}" class="app-nav-link {{ $item['active'] ? 'is-active' : '' }}">
|
||||
<i class="fa-solid {{ $item['icon'] }}"></i>
|
||||
<span>{{ $item['label'] }}</span>
|
||||
@if(($item['badge'] ?? 0) > 0)
|
||||
<span class="badge badge-error badge-xs transfer-pending-badge app-nav-badge">{{ $item['badge'] }}</span>
|
||||
@endif
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
@if($user->hasRole('administrator'))
|
||||
<div class="app-nav-section">
|
||||
<div class="app-nav-section-title">Administrasi</div>
|
||||
@foreach($adminItems as $item)
|
||||
<a href="{{ $item['href'] }}" class="app-nav-link {{ $item['active'] ? 'is-active' : '' }}">
|
||||
<i class="fa-solid {{ $item['icon'] }}"></i>
|
||||
<span>{{ $item['label'] }}</span>
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</nav>
|
||||
|
||||
<div class="app-sidebar-footer">
|
||||
<div class="app-user-card">
|
||||
<div class="avatar placeholder">
|
||||
<div class="bg-primary text-primary-content rounded-full w-9">
|
||||
<span class="text-xs font-bold">{{ substr($user->name, 0, 1) }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="app-user-copy">
|
||||
<div class="app-user-name">{{ $user->name }}</div>
|
||||
<div class="app-user-role">{{ str_replace('_', ' ', $roleName) }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<form method="POST" action="{{ route('logout') }}">
|
||||
@csrf
|
||||
<button type="submit" class="app-logout-button">
|
||||
<i class="fa-solid fa-right-from-bracket"></i>
|
||||
<span>Keluar</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</aside>
|
||||
Reference in New Issue
Block a user