181 lines
10 KiB
PHP
181 lines
10 KiB
PHP
@extends('layouts.app')
|
|
|
|
@section('content')
|
|
<div class="container py-4">
|
|
<!-- Header Page -->
|
|
<div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center mb-4 gap-3 animate__animated animate__fadeInDown">
|
|
<div>
|
|
<h3 class="fw-bold text-dark mb-1">
|
|
<i class="fa-solid fa-clock-rotate-left text-primary me-2"></i>Riwayat Rekomendasi
|
|
</h3>
|
|
<p class="text-muted mb-0">Lacak dan bandingkan seluruh hasil analisis penjurusan berbasis algoritma C4.5 yang pernah Anda lakukan.</p>
|
|
</div>
|
|
<!-- Tombol Keluar / Kembali ke Dashboard -->
|
|
<a href="{{ route('dashboard') }}" class="btn btn-outline-secondary fw-semibold px-4 py-2 rounded-3 shadow-sm d-inline-flex align-items-center gap-2">
|
|
<i class="fa-solid fa-arrow-left"></i> Kembali ke Dashboard
|
|
</a>
|
|
</div>
|
|
|
|
@if(session('success'))
|
|
<div class="alert alert-success alert-dismissible fade show rounded-3 mb-4" role="alert">
|
|
<i class="fa-solid fa-circle-check me-2"></i> {{ session('success') }}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
|
</div>
|
|
@endif
|
|
|
|
@if($riwayats->count() > 0)
|
|
<!-- Metric Summary Cards -->
|
|
<div class="row g-3 mb-4 animate__animated animate__fadeInUp">
|
|
<div class="col-md-4">
|
|
<div class="card border-0 shadow-sm rounded-4 p-3 bg-white border-start border-4 border-primary">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<div class="bg-primary-subtle text-primary p-3 rounded-3 fs-4">
|
|
<i class="fa-solid fa-calculator"></i>
|
|
</div>
|
|
<div>
|
|
<small class="text-muted d-block fw-semibold">Total Sesi Analisis</small>
|
|
<h4 class="fw-bold text-dark mb-0">{{ $riwayats->total() }} Kali</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card border-0 shadow-sm rounded-4 p-3 bg-white border-start border-4 border-success">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<div class="bg-success-subtle text-success p-3 rounded-3 fs-4">
|
|
<i class="fa-solid fa-graduation-cap"></i>
|
|
</div>
|
|
<div>
|
|
<small class="text-muted d-block fw-semibold">Rekomendasi Terakhir</small>
|
|
<h4 class="fw-bold text-dark mb-0 text-truncate" style="max-width: 180px;">
|
|
{{ $riwayats->first()->hasil_rekomendasi ?? '-' }}
|
|
</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card border-0 shadow-sm rounded-4 p-3 bg-white border-start border-4 border-info">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<div class="bg-info-subtle text-info p-3 rounded-3 fs-4">
|
|
<i class="fa-solid fa-calendar-day"></i>
|
|
</div>
|
|
<div>
|
|
<small class="text-muted d-block fw-semibold">Tanggal Terakhir Cek</small>
|
|
<h6 class="fw-bold text-dark mb-0">
|
|
{{ \Carbon\Carbon::parse($riwayats->first()->created_at)->timezone('Asia/Jakarta')->format('d M Y, H:i') }} WIB
|
|
</h6>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Interactive History Table / Timeline Cards -->
|
|
<div class="card border-0 shadow-sm rounded-4 overflow-hidden animate__animated animate__fadeInUp animate__delay-1s">
|
|
<div class="card-header bg-white py-3 px-4 border-bottom d-flex justify-content-between align-items-center">
|
|
<h6 class="fw-bold mb-0 text-secondary">
|
|
<i class="fa-solid fa-list me-2"></i>Daftar Catatan Analisis
|
|
</h6>
|
|
<span class="badge bg-light text-dark border">Menampilkan {{ $riwayats->count() }} Data</span>
|
|
</div>
|
|
<div class="table-responsive">
|
|
<table class="table table-hover align-middle mb-0">
|
|
<thead class="table-light text-secondary">
|
|
<tr>
|
|
<th class="ps-4">No</th>
|
|
<th>Tanggal & Waktu</th>
|
|
<th>Nilai Rapor</th>
|
|
<th>Minat</th>
|
|
<th>Cita-Cita</th>
|
|
<th>Rumpun Studi</th>
|
|
<th>Hasil Rekomendasi</th>
|
|
<th class="text-center pe-4">Aksi</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($riwayats as $index => $item)
|
|
<tr>
|
|
<td class="ps-4 fw-bold text-muted">
|
|
{{ $riwayats->firstItem() + $index }}
|
|
</td>
|
|
<td>
|
|
<div class="d-flex flex-column">
|
|
<span class="fw-bold text-dark">{{ \Carbon\Carbon::parse($item->created_at)->timezone('Asia/Jakarta')->format('d M Y') }}</span>
|
|
<small class="text-muted"><i class="fa-regular fa-clock me-1"></i>{{ \Carbon\Carbon::parse($item->created_at)->timezone('Asia/Jakarta')->format('H:i') }} WIB</small>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-light text-dark border px-2 py-1">
|
|
{{ $item->nilai_raw ?? $item->nilai }}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<span class="text-truncate d-inline-block" style="max-width: 120px;" title="{{ $item->minat_raw ?? $item->minat }}">
|
|
{{ $item->minat_raw ?? $item->minat }}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<span class="text-truncate d-inline-block" style="max-width: 120px;" title="{{ $item->cita_cita_raw ?? $item->cita_cita }}">
|
|
{{ $item->cita_cita_raw ?? $item->cita_cita }}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<span class="text-truncate d-inline-block" style="max-width: 120px;" title="{{ $item->preferensi_studi_raw ?? $item->preferensi_studi }}">
|
|
{{ $item->preferensi_studi_raw ?? $item->preferensi_studi }}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<span class="badge bg-primary-subtle text-primary border border-primary-subtle px-3 py-2 rounded-pill fw-bold">
|
|
<i class="fa-solid fa-sparkles me-1 text-warning"></i> {{ $item->hasil_rekomendasi }}
|
|
</span>
|
|
</td>
|
|
<td class="text-center pe-4">
|
|
<div class="d-flex justify-content-center gap-2">
|
|
<a href="{{ route('riwayat.show', $item->id) }}" class="btn btn-sm btn-outline-primary rounded-3 px-2 py-1" title="Lihat Detail & Cetak PDF">
|
|
<i class="fa-solid fa-eye me-1"></i> Detail
|
|
</a>
|
|
<form action="{{ route('riwayat.destroy', $item->id) }}" method="POST" onsubmit="return confirm('Apakah Anda yakin ingin menghapus catatan riwayat ini?')">
|
|
@csrf
|
|
@method('DELETE')
|
|
<button type="submit" class="btn btn-sm btn-outline-danger rounded-3 px-2 py-1" title="Hapus">
|
|
<i class="fa-solid fa-trash-can"></i>
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
@if($riwayats->hasPages())
|
|
<div class="card-footer bg-white py-3 px-4 d-flex flex-column flex-md-row justify-content-between align-items-center gap-2">
|
|
<div class="small text-muted">
|
|
Menampilkan <b>{{ $riwayats->firstItem() }}</b> - <b>{{ $riwayats->lastItem() }}</b> dari <b>{{ $riwayats->total() }}</b> data
|
|
</div>
|
|
<div>
|
|
{{ $riwayats->links('pagination::bootstrap-5') }}
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
@else
|
|
<!-- Empty State -->
|
|
<div class="card border-0 shadow-sm rounded-4 p-5 text-center bg-white animate__animated animate__fadeIn">
|
|
<div class="py-4">
|
|
<div class="bg-primary-subtle text-primary d-inline-block p-4 rounded-circle mb-3">
|
|
<i class="fa-solid fa-folder-open fs-1"></i>
|
|
</div>
|
|
<h4 class="fw-bold text-dark">Belum Ada Riwayat Rekomendasi</h4>
|
|
<p class="text-muted mx-auto mb-4" style="max-width: 500px;">
|
|
Anda belum pernah melakukan analisis penjurusan. Lakukan tes rekomendasi pertama Anda untuk melihat hasilnya di sini.
|
|
</p>
|
|
<a href="{{ route('prediksi.index') }}" class="btn btn-primary btn-lg px-4 py-3 fw-bold rounded-3 shadow hover-card">
|
|
<i class="fa-solid fa-wand-magic-sparkles me-2"></i> Mulai Tes Rekomendasi Sekarang
|
|
</a>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
@endsection |