237 lines
8.3 KiB
PHP
237 lines
8.3 KiB
PHP
<aside class="left-sidebar">
|
|
<div>
|
|
{{-- Logo --}}
|
|
<div class="brand-logo d-flex align-items-center justify-content-between">
|
|
<a href="{{ url('/') }}" class="text-nowrap logo-img">
|
|
<img src="{{ asset('logo/logo_rsabhk.png') }}" alt="rsabhk" width="180" class="mt-2" />
|
|
</a>
|
|
|
|
<div class="close-btn d-xl-none d-block sidebartoggler cursor-pointer" id="sidebarCollapse">
|
|
<i class="ti ti-x fs-6"></i>
|
|
</div>
|
|
</div>
|
|
|
|
{{-- Sidebar nav --}}
|
|
@php
|
|
$openMaster = request()->is('akses*') || request()->is('master-kategori*') || request()->is('master-persetujuan*');
|
|
@endphp
|
|
|
|
<nav class="sidebar-nav scroll-sidebar" data-simplebar="">
|
|
<ul id="sidebarnav">
|
|
|
|
{{-- HOME --}}
|
|
<li class="nav-small-cap"><span class="hide-menu">Home</span></li>
|
|
|
|
{{-- <li class="sidebar-item">
|
|
<a class="sidebar-link" href="{{ url('/') }}" aria-expanded="false">
|
|
<i class="ti ti-dashboard"></i>
|
|
<span class="hide-menu">Dashboard</span>
|
|
</a>
|
|
</li> --}}
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link" href="{{ url('/') }}" aria-expanded="false">
|
|
<i class="ti ti-dashboard"></i>
|
|
<span class="hide-menu">Dokumen Unit</span>
|
|
</a>
|
|
</li>
|
|
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link" href="{{ url('/data-umum') }}" aria-expanded="false">
|
|
<i class="ti ti-layout-dashboard"></i>
|
|
<span class="hide-menu">Dokumen Umum</span>
|
|
</a>
|
|
</li>
|
|
@if(Auth::guard('admin')->check() || (Auth::check() && auth()->user()->dataUser->mappingUnitKerjaPegawai()->whereIn('objectunitkerjapegawaifk', [51, 22])->exists()))
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link" href="{{ url('/data-akreditasi') }}" aria-expanded="false">
|
|
<i class="fa-solid fa-sliders"></i>
|
|
<span class="hide-menu">Dokumen Akreditasi</span>
|
|
</a>
|
|
</li>
|
|
@endif
|
|
{{-- AKTIVITAS --}}
|
|
<li class="nav-small-cap"><span class="hide-menu">Aktivitas</span></li>
|
|
@php
|
|
$isAtasan = \App\Models\MappingUnitKerjaPegawai::where('statusenabled', true)->where('objectatasanlangsungfk', auth()->user()->objectpegawaifk)->exists();
|
|
@endphp
|
|
@if($isAtasan)
|
|
@if(!Auth::guard('admin')->check())
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link d-flex align-items-center justify-content-between"
|
|
href="{{ url('/pending-file') }}" aria-expanded="false">
|
|
|
|
<div class="d-flex align-items-center gap-3">
|
|
<i class="ti ti-clock"></i>
|
|
<span class="hide-menu">Persetujuan</span>
|
|
</div>
|
|
|
|
<span class="badge bg-danger rounded-pill d-none" id="pendingCountBadge">0</span>
|
|
</a>
|
|
</li>
|
|
@endif
|
|
@else
|
|
@if(!Auth::guard('admin')->check())
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link d-flex align-items-center justify-content-between"
|
|
href="{{ url('/pengajuan-file') }}" aria-expanded="false">
|
|
|
|
<div class="d-flex align-items-center gap-3">
|
|
<i class="ti ti-clock"></i>
|
|
<span class="hide-menu">Pengajuan</span>
|
|
</div>
|
|
</a>
|
|
</li>
|
|
@endif
|
|
@endif
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link d-flex align-items-center justify-content-between"
|
|
href="{{ url('/log-activity') }}" aria-expanded="false">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<i class="ti ti-activity"></i>
|
|
<span class="hide-menu">Log Aktivitas</span>
|
|
</div>
|
|
</a>
|
|
</li>
|
|
{{-- RECAP --}}
|
|
{{-- <li class="nav-small-cap"><span class="hide-menu">Recap</span></li>
|
|
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link d-flex align-items-center justify-content-between"
|
|
href="{{ url('/recap') }}" aria-expanded="false">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<i class="ti ti-report-analytics"></i>
|
|
<span class="hide-menu">Data Rekap</span>
|
|
</div>
|
|
</a>
|
|
</li> --}}
|
|
|
|
{{-- MASTER --}}
|
|
<li class="nav-small-cap"><span class="hide-menu">History</span></li>
|
|
<li class="sidebar-item">
|
|
<a class="sidebar-link" href="{{ url('/expired-dokumen') }}" aria-expanded="false">
|
|
<i class="ti ti-clock"></i>
|
|
<span class="hide-menu">Expired Dokumen</span>
|
|
</a>
|
|
</li>
|
|
@if(!Auth::guard('admin')->check())
|
|
@if(auth()->user()->dataUser->mappingUnitKerjaPegawai()->where('objectunitkerjapegawaifk', 43)->exists())
|
|
<li class="nav-small-cap"><span class="hide-menu">Master</span></li>
|
|
|
|
<li class="sidebar-item has-sub {{ $openMaster ? 'open' : '' }}">
|
|
<a class="sidebar-link d-flex align-items-center justify-content-between"
|
|
href="#menu-master"
|
|
data-bs-toggle="collapse"
|
|
role="button"
|
|
aria-expanded="{{ $openMaster ? 'true' : 'false' }}"
|
|
aria-controls="menu-master">
|
|
|
|
<div class="d-flex align-items-center gap-3">
|
|
<i class="ti ti-report-analytics"></i>
|
|
<span class="hide-menu">Master</span>
|
|
</div>
|
|
|
|
<i class="ti ti-chevron-right fs-6 sidebar-arrow"></i>
|
|
</a>
|
|
|
|
<ul class="collapse sidebar-submenu {{ $openMaster ? 'show' : '' }}" id="menu-master">
|
|
{{-- <li class="sidebar-item">
|
|
<a href="{{ url('/akses') }}" class="sidebar-link">
|
|
<span class="hide-menu">Akses</span>
|
|
</a>
|
|
</li> --}}
|
|
|
|
<li class="sidebar-item">
|
|
<a href="{{ url('/master-kategori') }}" class="sidebar-link">
|
|
<span class="hide-menu">Kategori</span>
|
|
</a>
|
|
</li>
|
|
|
|
{{-- <li class="sidebar-item">
|
|
<a href="{{ url('/master-persetujuan') }}" class="sidebar-link">
|
|
<span class="hide-menu">Persetujuan</span>
|
|
</a>
|
|
</li> --}}
|
|
</ul>
|
|
</li>
|
|
@endif
|
|
@endif
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</aside>
|
|
|
|
{{-- Styling kecil biar submenu rapi + arrow muter --}}
|
|
<style>
|
|
.sidebar-submenu { padding-left: 2.7rem; }
|
|
.sidebar-submenu .sidebar-link { padding: 6px 0; font-size: 13px; opacity: .9; }
|
|
|
|
.sidebar-item .sidebar-link {
|
|
border-radius: 10px;
|
|
transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
|
|
}
|
|
|
|
.sidebar-item .sidebar-link:hover,
|
|
.sidebar-item .sidebar-link:focus {
|
|
background: #eef2ff;
|
|
color: #1e40af;
|
|
box-shadow: 0 8px 18px rgba(30, 64, 175, 0.12);
|
|
}
|
|
|
|
.sidebar-item .sidebar-link:focus-visible {
|
|
outline: 2px solid rgba(59, 130, 246, 0.6);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
.sidebar-item .sidebar-link:hover i,
|
|
.sidebar-item .sidebar-link:focus i {
|
|
color: #1e40af;
|
|
}
|
|
|
|
.sidebar-item.has-sub .sidebar-arrow { transition: transform .2s ease; }
|
|
.sidebar-item.has-sub.open .sidebar-arrow { transform: rotate(90deg); }
|
|
</style>
|
|
|
|
<script>
|
|
const badge = document.getElementById('pendingCountBadge');
|
|
|
|
async function countData() {
|
|
if (!badge) return;
|
|
|
|
try {
|
|
const res = await fetch('/data/count-pending', {
|
|
headers: { 'Accept': 'application/json' }
|
|
});
|
|
|
|
if (!res.ok) throw new Error('Request failed: ' + res.status);
|
|
|
|
const data = await res.json();
|
|
const count = Number(data?.count ?? 0);
|
|
|
|
badge.textContent = count;
|
|
badge.classList.toggle('d-none', count <= 0);
|
|
|
|
} catch (e) {
|
|
badge.classList.add('d-none');
|
|
}
|
|
}
|
|
|
|
countData();
|
|
|
|
// setInterval(countData, 60000);
|
|
|
|
const masterCollapse = document.getElementById('menu-master');
|
|
const masterItem = masterCollapse
|
|
? masterCollapse.closest('.sidebar-item.has-sub')
|
|
: null;
|
|
|
|
if (masterItem && masterCollapse) {
|
|
masterCollapse.addEventListener('shown.bs.collapse', function () {
|
|
masterItem.classList.add('open');
|
|
});
|
|
|
|
masterCollapse.addEventListener('hidden.bs.collapse', function () {
|
|
masterItem.classList.remove('open');
|
|
});
|
|
}
|
|
</script>
|