MIF_E31231754/resources/views/admin/dashboard.blade.php

199 lines
9.2 KiB
PHP

@extends('admin.layouts.app')
@section('title', 'Dashboard')
@section('content')
{{-- EARLY WARNING: Periode Hampir Selesai --}}
@if($periodeHampirSelesai && $periodeAktif)
<div class="alert mb-4 border-0 shadow-sm" style="background: linear-gradient(135deg, #fff3cd 0%, #ffe0b2 100%); border-left: 5px solid #ff9800 !important;">
<div class="d-flex align-items-center gap-3">
<div style="width:50px;height:50px;background:#ff9800;border-radius:50%;display:flex;align-items:center;justify-content:center;animation: pulse-warning 2s infinite;">
<i class="bi bi-exclamation-triangle-fill" style="font-size:1.5rem;color:#fff;"></i>
</div>
<div class="flex-grow-1">
<div style="font-weight:700;color:#e65100;font-size:1rem;">
<i class="bi bi-clock-history me-1"></i>Peringatan: Periode Hampir Berakhir!
</div>
<div style="color:#bf360c;font-size:0.88rem;">
Periode <strong>{{ $periodeAktif->nama }}</strong> akan berakhir pada
<strong>{{ \Carbon\Carbon::parse($periodeAktif->tanggal_selesai)->translatedFormat('d F Y') }}</strong>
@if($sisaHari == 0)
<span class="badge bg-danger">Hari ini!</span>
@elseif($sisaHari == 1)
<span class="badge bg-danger">Besok!</span>
@else
<span class="badge bg-warning text-dark">{{ $sisaHari }} hari lagi</span>
@endif
<br><small class="text-muted">Segera selesaikan proses penilaian dan perhitungan SAW sebelum periode berakhir.</small>
</div>
</div>
<div>
<a href="{{ route('admin.saw.index', $periodeAktif) }}" class="btn btn-warning btn-sm shadow-sm">
<i class="bi bi-calculator me-1"></i>Proses SAW
</a>
</div>
</div>
</div>
<style>
@keyframes pulse-warning {
0% { box-shadow: 0 0 0 0 rgba(255, 152, 0, 0.5); }
70% { box-shadow: 0 0 0 12px rgba(255, 152, 0, 0); }
100% { box-shadow: 0 0 0 0 rgba(255, 152, 0, 0); }
}
</style>
@endif
{{-- STAT CARDS --}}
<div class="row g-3 mb-4">
<div class="col-md-3">
<div class="card h-100">
<div class="card-body d-flex align-items-center gap-3 p-4">
<div style="width:50px;height:50px;background:#e0f2e9;border-radius:12px;display:flex;align-items:center;justify-content:center;">
<i class="bi bi-people-fill" style="font-size:1.4rem;color:#2d7a4f;"></i>
</div>
<div>
<div class="text-muted" style="font-size:0.78rem;">Total Warga</div>
<div style="font-size:1.6rem;font-weight:700;color:#1a3c2e;line-height:1.1;">{{ $totalWarga }}</div>
</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card h-100">
<div class="card-body d-flex align-items-center gap-3 p-4">
<div style="width:50px;height:50px;background:#fef9c3;border-radius:12px;display:flex;align-items:center;justify-content:center;">
<i class="bi bi-check-circle-fill" style="font-size:1.4rem;color:#ca8a04;"></i>
</div>
<div>
<div class="text-muted" style="font-size:0.78rem;">Penerima BLT</div>
<div style="font-size:1.6rem;font-weight:700;color:#1a3c2e;line-height:1.1;">{{ $totalPenerima }}</div>
</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card h-100">
<div class="card-body d-flex align-items-center gap-3 p-4">
<div style="width:50px;height:50px;background:#dbeafe;border-radius:12px;display:flex;align-items:center;justify-content:center;">
<i class="bi bi-clipboard-data-fill" style="font-size:1.4rem;color:#2563eb;"></i>
</div>
<div>
<div class="text-muted" style="font-size:0.78rem;">Total Penilaian</div>
<div style="font-size:1.6rem;font-weight:700;color:#1a3c2e;line-height:1.1;">{{ $totalPenilaian }}</div>
</div>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card h-100">
<div class="card-body d-flex align-items-center gap-3 p-4">
<div style="width:50px;height:50px;background:#fce7f3;border-radius:12px;display:flex;align-items:center;justify-content:center;">
<i class="bi bi-calendar3" style="font-size:1.4rem;color:#db2777;"></i>
</div>
<div>
<div class="text-muted" style="font-size:0.78rem;">Periode Aktif</div>
<div style="font-size:0.95rem;font-weight:700;color:#1a3c2e;line-height:1.3;">
{{ $periodeAktif?->nama ?? 'Belum Ada' }}
</div>
</div>
</div>
</div>
</div>
</div>
{{-- AKSI CEPAT --}}
@if($periodeAktif)
<div class="card mb-4">
<div class="card-body p-4">
<div class="d-flex align-items-center justify-content-between flex-wrap gap-3">
<div>
<div style="font-weight:700;color:#1a3c2e;font-size:1rem;">
<i class="bi bi-lightning-charge-fill text-warning me-2"></i>
Aksi Cepat {{ $periodeAktif->nama }}
</div>
<div class="text-muted" style="font-size:0.8rem;">Periode sedang berjalan</div>
</div>
<div class="d-flex gap-2 flex-wrap">
@if(auth()->user()->hasRole('superadmin') || auth()->user()->hasRole('admin'))
<a href="{{ route('admin.penilaian.create') }}" class="btn btn-primary btn-sm">
<i class="bi bi-plus-circle me-1"></i>Tambah Penilaian
</a>
<a href="{{ route('admin.saw.index', $periodeAktif) }}" class="btn btn-success btn-sm">
<i class="bi bi-calculator me-1"></i>Proses SAW
</a>
@endif
<a href="{{ route('admin.saw.hasil', $periodeAktif) }}" class="btn btn-outline-primary btn-sm">
<i class="bi bi-trophy me-1"></i>Lihat Hasil
</a>
</div>
</div>
</div>
</div>
@endif
{{-- TABEL PERIODE --}}
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<span><i class="bi bi-clock-history me-2"></i>Periode Seleksi Terbaru</span>
@if(auth()->user()->hasRole('superadmin') || auth()->user()->hasRole('admin'))
<a href="{{ route('admin.periode.create') }}" class="btn btn-primary btn-sm">
<i class="bi bi-plus-circle me-1"></i>Tambah Periode
</a>
@endif
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table mb-0">
<thead>
<tr>
<th>Nama Periode</th>
<th>Tanggal Mulai</th>
<th>Tanggal Selesai</th>
<th>Kuota</th>
<th>Status</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@forelse($periodeList as $p)
<tr>
<td class="fw-semibold">{{ $p->nama }}</td>
<td>{{ \Carbon\Carbon::parse($p->tanggal_mulai)->format('d/m/Y') }}</td>
<td>{{ \Carbon\Carbon::parse($p->tanggal_selesai)->format('d/m/Y') }}</td>
<td>{{ $p->kuota_penerima }} orang</td>
<td>
@if($p->status === 'aktif')
<span class="badge bg-success">Aktif</span>
@elseif($p->status === 'selesai')
<span class="badge bg-primary">Selesai</span>
@else
<span class="badge bg-secondary">Draft</span>
@endif
</td>
<td>
@if(auth()->user()->hasRole('superadmin') || auth()->user()->hasRole('admin'))
<a href="{{ route('admin.saw.index', $p) }}" class="btn btn-sm btn-outline-primary">
<i class="bi bi-calculator me-1"></i>SAW
</a>
@else
<a href="{{ route('admin.saw.hasil', $p) }}" class="btn btn-sm btn-outline-success">
<i class="bi bi-eye me-1"></i>Hasil
</a>
@endif
</td>
</tr>
@empty
<tr>
<td colspan="6" class="text-center text-muted py-4">
<i class="bi bi-inbox fs-4 d-block mb-2"></i>
Belum ada periode seleksi.
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
@endsection