TIF_Nganjuk_E41220879/resources/views/components/sidebar.blade.php

129 lines
7.3 KiB
PHP

<aside class="sidebar fixed left-0 top-0 h-screen flex flex-col z-50">
<!-- Logo -->
<div class="p-6 border-b border-white/10">
<div class="flex items-center gap-2">
<img src="{{ asset('meddata-logo.png') }}" alt="MedData Logo" class="w-8 h-8 object-contain flex-shrink-0">
<div>
<h1 class="text-xl font-bold text-white leading-tight">MedData</h1>
<p class="text-xs text-white/60 leading-tight">Puskesmas Doko</p>
</div>
</div>
</div>
<!-- Navigation -->
<nav class="flex-1 px-4 space-y-1 overflow-y-auto">
<a href="{{ route('dashboard') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('dashboard') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"/>
</svg>
Dashboard
</a>
@if(auth()->user()->isSuperAdmin())
<a href="{{ route('user-management.index') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('user-management.*') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"/>
</svg>
Kelola Pengguna
</a>
@endif
@if(auth()->user()->isApoteker() || auth()->user()->isSuperAdmin())
<a href="{{ route('obat-masuk.index') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('obat-masuk.*') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"/>
</svg>
Obat Masuk
</a>
<a href="{{ route('obat-keluar.index') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('obat-keluar.*') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 12H4"/>
</svg>
Obat Keluar
</a>
@endif
<a href="{{ route('resep.index') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('resep.*') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
</svg>
Resep
@if(auth()->user()->isApoteker() && isset($unreadResepCount) && $unreadResepCount > 0)
<span class="ml-auto bg-red-500 text-white text-xs font-bold rounded-full px-2 py-0.5 min-w-[20px] text-center animate-pulse">
{{ $unreadResepCount > 99 ? '99+' : $unreadResepCount }}
</span>
@endif
</a>
@if(auth()->user()->isApoteker() || auth()->user()->isSuperAdmin())
<a href="{{ route('laporan.index') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('laporan.*') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
</svg>
Laporan
</a>
@endif
@if(auth()->user()->isApoteker() || auth()->user()->isSuperAdmin())
<!-- Master Data Section -->
<div class="pt-4 mt-4 border-t border-white/10">
<p class="px-4 text-xs font-semibold text-white/50 uppercase tracking-wider mb-2">Master Data</p>
<a href="{{ route('kategori.index') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('kategori.*') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z"/>
</svg>
Kategori
</a>
<a href="{{ route('satuan.index') }}"
class="sidebar-link flex items-center gap-3 px-4 py-3 rounded-lg text-sm font-medium {{ request()->routeIs('satuan.*') ? 'active' : '' }}">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h16M4 18h16"/>
</svg>
Satuan
</a>
</div>
@endif
</nav>
<!-- User Info -->
<div class="p-4 border-t border-white/10">
<div class="flex items-center gap-3">
<a href="{{ route('profile.edit') }}" class="flex items-center gap-3 flex-1 hover:bg-white/5 rounded-lg p-1 transition-colors">
@if(auth()->user()->profile_photo)
<img src="{{ asset('storage/' . auth()->user()->profile_photo) }}" alt="Foto profil" class="w-10 h-10 rounded-full object-cover">
@else
<div class="w-10 h-10 rounded-full bg-white/20 flex items-center justify-center">
<span class="text-sm font-semibold text-white">{{ substr(auth()->user()->name ?? 'A', 0, 1) }}</span>
</div>
@endif
<div>
<p class="text-sm font-medium text-white">{{ auth()->user()->name ?? 'Admin' }}</p>
<p class="text-xs text-white/60">{{ ucfirst(auth()->user()->role ?? 'apoteker') }}</p>
</div>
</a>
<form method="POST" action="{{ route('logout') }}">
@csrf
<button type="submit" class="p-2 hover:bg-white/10 rounded-lg transition-colors text-white/80 hover:text-white" title="Logout">
<svg class="w-5 h-5" 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>
</aside>