MIF_E31230302/resources/views/siswa/riwayat.blade.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