revert: kembalikan halaman detail siswa seperti semula (Kangmas minta)
This commit is contained in:
@@ -2,175 +2,66 @@
|
|||||||
@php
|
@php
|
||||||
$isAdmin = auth()->user()?->isAdmin() ?? false;
|
$isAdmin = auth()->user()?->isAdmin() ?? false;
|
||||||
@endphp
|
@endphp
|
||||||
{{-- ===== HERO PROFIL PREMIUM ===== --}}
|
<div class="mb-6 rounded-3xl border border-slate-200 bg-white p-6 shadow-sm shadow-slate-200/50">
|
||||||
<div class="relative overflow-hidden rounded-3xl bg-gradient-to-br from-[#312e81] via-[#4338ca] to-[#6d28d9] shadow-xl shadow-indigo-500/20">
|
<div class="flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between">
|
||||||
<div class="absolute inset-0 opacity-10" style="background-image: radial-gradient(circle at 20% 30%, white 1.5px, transparent 1.5px); background-size: 22px 22px;"></div>
|
<div>
|
||||||
<div class="absolute -right-20 -top-24 w-80 h-80 rounded-full bg-white/10 blur-3xl"></div>
|
<h3 class="text-lg font-semibold text-slate-900">Kelengkapan Dokumen Wajib</h3>
|
||||||
<div class="absolute -left-16 -bottom-24 w-72 h-72 rounded-full bg-fuchsia-300/20 blur-3xl"></div>
|
<p class="mt-1 text-sm text-slate-500">Ringkasan upload dan verifikasi dokumen wajib siswa.</p>
|
||||||
<div class="relative px-6 py-7 lg:px-8 flex flex-col lg:flex-row lg:items-center gap-6">
|
|
||||||
<div class="flex items-center gap-5 flex-1 min-w-0">
|
|
||||||
<div class="relative shrink-0">
|
|
||||||
<div class="w-24 h-24 rounded-3xl bg-white/15 backdrop-blur border border-white/25 flex items-center justify-center shadow-inner">
|
|
||||||
<span class="text-4xl font-extrabold text-white">{{ strtoupper(substr($student->full_name, 0, 1)) }}</span>
|
|
||||||
</div>
|
|
||||||
<span class="absolute -bottom-2 left-1/2 -translate-x-1/2 px-2.5 py-0.5 rounded-full text-[10px] font-extrabold tracking-wider uppercase
|
|
||||||
{{ $student->status === 'active' ? 'bg-emerald-400 text-emerald-950' : 'bg-slate-200 text-slate-700' }}">
|
|
||||||
{{ $student->status === 'active' ? 'Aktif' : ucfirst($student->status) }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div class="min-w-0">
|
|
||||||
<div class="flex items-center gap-2 flex-wrap">
|
|
||||||
<h2 class="text-2xl lg:text-3xl font-bold text-white tracking-tight">{{ $student->full_name }}</h2>
|
|
||||||
</div>
|
|
||||||
<p class="text-sm text-indigo-100/90 mt-1.5 flex items-center gap-2 flex-wrap">
|
|
||||||
<span class="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-white/10 border border-white/15 text-[11px] font-semibold">
|
|
||||||
<i class="fa-solid fa-fingerprint text-[10px]"></i> NISN {{ $student->nisn ?: '-' }}
|
|
||||||
</span>
|
|
||||||
<span class="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-white/10 border border-white/15 text-[11px] font-semibold">
|
|
||||||
<i class="fa-solid fa-hashtag text-[10px]"></i> NIS {{ $student->student_number ?: '-' }}
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<div class="flex items-center gap-2 mt-3 flex-wrap">
|
|
||||||
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-white/15 border border-white/20 text-white text-xs font-bold shadow-sm">
|
|
||||||
<i class="fa-solid fa-school text-[11px]"></i> {{ $student->classRoom?->name ?: '-' }}
|
|
||||||
</span>
|
|
||||||
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-white/15 border border-white/20 text-white text-xs font-bold shadow-sm">
|
|
||||||
<i class="fa-solid fa-sitemap text-[11px]"></i> {{ $student->department?->name ?: '-' }}
|
|
||||||
</span>
|
|
||||||
<span class="inline-flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-white/15 border border-white/20 text-white text-xs font-bold shadow-sm">
|
|
||||||
<i class="fa-solid fa-calendar-days text-[11px]"></i> TA {{ $student->academicYear?->name ?: '-' }}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-wrap items-center gap-3 shrink-0">
|
|
||||||
<a href="{{ route('students.edit', $student) }}"
|
|
||||||
class="inline-flex items-center gap-2 px-5 py-3 rounded-xl bg-white text-indigo-700 text-sm font-bold shadow-lg hover:shadow-xl hover:-translate-y-0.5 transition-all">
|
|
||||||
<i class="fa-solid fa-pen"></i> Edit Siswa
|
|
||||||
</a>
|
|
||||||
<a href="{{ route('students.index') }}"
|
|
||||||
class="inline-flex items-center gap-2 px-5 py-3 rounded-xl bg-white/10 border border-white/20 text-white text-sm font-bold backdrop-blur hover:bg-white/20 hover:-translate-y-0.5 transition-all">
|
|
||||||
<i class="fa-solid fa-arrow-left"></i> Kembali
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{-- ===== KPI STRIP ===== --}}
|
|
||||||
<div class="grid grid-cols-2 xl:grid-cols-4 gap-4">
|
|
||||||
<div class="relative overflow-hidden rounded-2xl bg-white border border-slate-200 shadow-sm hover:shadow-lg hover:-translate-y-0.5 transition-all p-5">
|
|
||||||
<div class="absolute -right-8 -top-8 w-24 h-24 rounded-full bg-indigo-50"></div>
|
|
||||||
<div class="flex items-center justify-between relative">
|
|
||||||
<div>
|
|
||||||
<p class="text-xs font-semibold text-slate-400 uppercase tracking-wide">Dokumen Wajib</p>
|
|
||||||
<p class="text-3xl font-extrabold text-slate-800 mt-1.5">{{ $requiredDocumentSummary['uploaded'] }}/{{ $requiredDocumentSummary['total'] }}</p>
|
|
||||||
<p class="text-[11px] text-slate-400 mt-1">{{ $requiredDocumentSummary['missing'] === 0 ? 'Lengkap semua' : 'Kurang ' . $requiredDocumentSummary['missing'] . ' dokumen' }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="w-12 h-12 rounded-2xl bg-gradient-to-br from-indigo-500 to-violet-600 text-white flex items-center justify-center shadow-lg shadow-indigo-500/30">
|
|
||||||
<i class="fa-solid fa-folder-open text-lg"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="relative overflow-hidden rounded-2xl bg-white border border-slate-200 shadow-sm hover:shadow-lg hover:-translate-y-0.5 transition-all p-5">
|
|
||||||
<div class="absolute -right-8 -top-8 w-24 h-24 rounded-full bg-amber-50"></div>
|
|
||||||
<div class="flex items-center justify-between relative">
|
|
||||||
<div>
|
|
||||||
<p class="text-xs font-semibold text-slate-400 uppercase tracking-wide">Prestasi</p>
|
|
||||||
<p class="text-3xl font-extrabold text-slate-800 mt-1.5">{{ $student->achievements->count() }}</p>
|
|
||||||
<p class="text-[11px] text-slate-400 mt-1">{{ $student->achievements->pluck('level')->filter()->unique()->count() }} tingkat berbeda</p>
|
|
||||||
</div>
|
|
||||||
<div class="w-12 h-12 rounded-2xl bg-gradient-to-br from-amber-400 to-orange-500 text-white flex items-center justify-center shadow-lg shadow-amber-500/30">
|
|
||||||
<i class="fa-solid fa-trophy text-lg"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="relative overflow-hidden rounded-2xl bg-white border border-slate-200 shadow-sm hover:shadow-lg hover:-translate-y-0.5 transition-all p-5">
|
|
||||||
<div class="absolute -right-8 -top-8 w-24 h-24 rounded-full bg-emerald-50"></div>
|
|
||||||
<div class="flex items-center justify-between relative">
|
|
||||||
<div>
|
|
||||||
<p class="text-xs font-semibold text-slate-400 uppercase tracking-wide">Orang Tua / Wali</p>
|
|
||||||
<p class="text-3xl font-extrabold text-slate-800 mt-1.5">{{ $student->parents->count() }}</p>
|
|
||||||
<p class="text-[11px] text-slate-400 mt-1">{{ $student->parents->filter(fn ($parent) => filled($parent->phone_number))->count() }} punya nomor HP</p>
|
|
||||||
</div>
|
|
||||||
<div class="w-12 h-12 rounded-2xl bg-gradient-to-br from-emerald-500 to-teal-600 text-white flex items-center justify-center shadow-lg shadow-emerald-500/30">
|
|
||||||
<i class="fa-solid fa-people-roof text-lg"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="relative overflow-hidden rounded-2xl bg-white border border-slate-200 shadow-sm hover:shadow-lg hover:-translate-y-0.5 transition-all p-5">
|
|
||||||
<div class="absolute -right-8 -top-8 w-24 h-24 rounded-full bg-sky-50"></div>
|
|
||||||
<div class="flex items-center justify-between relative">
|
|
||||||
<div>
|
|
||||||
<p class="text-xs font-semibold text-slate-400 uppercase tracking-wide">Histori Akademik</p>
|
|
||||||
<p class="text-3xl font-extrabold text-slate-800 mt-1.5">{{ $student->academicHistories->count() }}</p>
|
|
||||||
<p class="text-[11px] text-slate-400 mt-1">{{ $student->academicHistories->where('is_current', true)->count() === 1 ? 'Posisi saat ini tercatat' : 'Riwayat penempatan' }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="w-12 h-12 rounded-2xl bg-gradient-to-br from-sky-500 to-blue-600 text-white flex items-center justify-center shadow-lg shadow-sky-500/30">
|
|
||||||
<i class="fa-solid fa-timeline text-lg"></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{-- ===== PROGRES DOKUMEN WAJIB ===== --}}
|
|
||||||
<div class="rounded-3xl bg-white border border-slate-200/70 shadow-lg shadow-slate-200/60 overflow-hidden">
|
|
||||||
<div class="px-6 py-5 border-b border-slate-100 flex flex-col sm:flex-row sm:items-center justify-between gap-3">
|
|
||||||
<div class="flex items-center gap-3">
|
|
||||||
<div class="w-10 h-10 rounded-2xl bg-gradient-to-br from-indigo-500 to-violet-600 text-white flex items-center justify-center shadow-md shadow-indigo-500/25">
|
|
||||||
<i class="fa-solid fa-file-shield text-base"></i>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h3 class="font-bold text-gray-900">Kelengkapan Dokumen Wajib</h3>
|
|
||||||
<p class="text-xs text-slate-400 mt-0.5">Upload & verifikasi dokumen wajib siswa</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="grid grid-cols-2 gap-4 text-right">
|
<div class="grid grid-cols-2 gap-4 text-right">
|
||||||
<div>
|
<div>
|
||||||
<div class="text-2xl font-extrabold {{ $requiredDocumentSummary['missing'] === 0 ? 'text-emerald-600' : 'text-amber-600' }}">{{ $requiredDocumentSummary['percentage'] }}%</div>
|
<div class="text-3xl font-bold text-slate-900">{{ $requiredDocumentSummary['percentage'] }}%</div>
|
||||||
<div class="text-[11px] font-semibold text-slate-400 uppercase tracking-wide">{{ $requiredDocumentSummary['missing'] === 0 ? 'Upload lengkap' : 'Kurang ' . $requiredDocumentSummary['missing'] }}</div>
|
<div class="text-sm {{ $requiredDocumentSummary['missing'] === 0 ? 'text-emerald-600' : 'text-amber-600' }}">
|
||||||
|
{{ $requiredDocumentSummary['missing'] === 0 ? 'Upload lengkap' : 'Kurang ' . $requiredDocumentSummary['missing'] . ' dokumen' }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="text-2xl font-extrabold {{ $requiredDocumentSummary['unverified'] === 0 && $requiredDocumentSummary['missing'] === 0 ? 'text-emerald-600' : 'text-sky-600' }}">{{ $requiredDocumentSummary['verification_percentage'] }}%</div>
|
<div class="text-3xl font-bold text-slate-900">{{ $requiredDocumentSummary['verification_percentage'] }}%</div>
|
||||||
<div class="text-[11px] font-semibold text-slate-400 uppercase tracking-wide">Terverifikasi</div>
|
<div class="text-sm {{ $requiredDocumentSummary['unverified'] === 0 && $requiredDocumentSummary['missing'] === 0 ? 'text-emerald-600' : 'text-sky-600' }}">
|
||||||
|
{{ $requiredDocumentSummary['unverified'] === 0 && $requiredDocumentSummary['missing'] === 0 ? 'Terverifikasi penuh' : $requiredDocumentSummary['unverified'] . ' belum valid' }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="px-6 py-5 space-y-4">
|
|
||||||
|
<div class="mt-4 space-y-4">
|
||||||
<div>
|
<div>
|
||||||
<div class="mb-2 flex items-center justify-between text-xs font-semibold uppercase tracking-[0.16em] text-slate-400">
|
<div class="mb-2 flex items-center justify-between text-xs font-semibold uppercase tracking-[0.16em] text-slate-400">
|
||||||
<span>Upload Dokumen Wajib</span>
|
<span>Upload Dokumen Wajib</span>
|
||||||
<span>{{ $requiredDocumentSummary['uploaded'] }}/{{ $requiredDocumentSummary['total'] }}</span>
|
<span>{{ $requiredDocumentSummary['uploaded'] }}/{{ $requiredDocumentSummary['total'] }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="h-3 overflow-hidden rounded-full bg-slate-100">
|
<div class="h-3 overflow-hidden rounded-full bg-slate-200">
|
||||||
<div class="h-full rounded-full {{ $requiredDocumentSummary['missing'] === 0 ? 'bg-gradient-to-r from-emerald-400 to-emerald-500' : 'bg-gradient-to-r from-amber-400 to-orange-500' }}" style="width: {{ $requiredDocumentSummary['percentage'] }}%"></div>
|
<div class="h-full rounded-full {{ $requiredDocumentSummary['missing'] === 0 ? 'bg-emerald-500' : 'bg-amber-500' }}" style="width: {{ $requiredDocumentSummary['percentage'] }}%"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="mb-2 flex items-center justify-between text-xs font-semibold uppercase tracking-[0.16em] text-slate-400">
|
<div class="mb-2 flex items-center justify-between text-xs font-semibold uppercase tracking-[0.16em] text-slate-400">
|
||||||
<span>Verifikasi Dokumen Wajib</span>
|
<span>Verifikasi Dokumen Wajib</span>
|
||||||
<span>{{ $requiredDocumentSummary['verified'] }}/{{ $requiredDocumentSummary['total'] }}</span>
|
<span>{{ $requiredDocumentSummary['verified'] }}/{{ $requiredDocumentSummary['total'] }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="h-3 overflow-hidden rounded-full bg-slate-100">
|
<div class="h-3 overflow-hidden rounded-full bg-slate-200">
|
||||||
<div class="h-full rounded-full {{ $requiredDocumentSummary['unverified'] === 0 && $requiredDocumentSummary['missing'] === 0 ? 'bg-gradient-to-r from-sky-400 to-blue-500' : 'bg-gradient-to-r from-slate-300 to-slate-400' }}" style="width: {{ $requiredDocumentSummary['verification_percentage'] }}%"></div>
|
<div class="h-full rounded-full {{ $requiredDocumentSummary['unverified'] === 0 && $requiredDocumentSummary['missing'] === 0 ? 'bg-sky-500' : 'bg-slate-500' }}" style="width: {{ $requiredDocumentSummary['verification_percentage'] }}%"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@if ($requiredDocumentSummary['missing_items']->isNotEmpty() || $requiredDocumentSummary['unverified_items']->isNotEmpty())
|
|
||||||
<div class="flex flex-wrap gap-2 pt-1">
|
|
||||||
@foreach ($requiredDocumentSummary['missing_items'] as $missingDocument)
|
|
||||||
<span class="inline-flex items-center gap-1.5 rounded-full bg-rose-50 border border-rose-100 px-3 py-1 text-xs font-semibold text-rose-700"><i class="fa-solid fa-circle-xmark text-[10px]"></i> Belum upload: {{ $missingDocument }}</span>
|
|
||||||
@endforeach
|
|
||||||
@foreach ($requiredDocumentSummary['unverified_items'] as $unverifiedDocument)
|
|
||||||
<span class="inline-flex items-center gap-1.5 rounded-full bg-sky-50 border border-sky-100 px-3 py-1 text-xs font-semibold text-sky-700"><i class="fa-solid fa-circle-info text-[10px]"></i> Belum valid: {{ $unverifiedDocument }}</span>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if ($requiredDocumentSummary['missing_items']->isNotEmpty() || $requiredDocumentSummary['unverified_items']->isNotEmpty())
|
||||||
|
<div class="mt-4 flex flex-wrap gap-2">
|
||||||
|
@foreach ($requiredDocumentSummary['missing_items'] as $missingDocument)
|
||||||
|
<span class="rounded-full bg-rose-100 px-3 py-1 text-xs font-semibold text-rose-700">Belum upload: {{ $missingDocument }}</span>
|
||||||
|
@endforeach
|
||||||
|
@foreach ($requiredDocumentSummary['unverified_items'] as $unverifiedDocument)
|
||||||
|
<span class="rounded-full bg-sky-100 px-3 py-1 text-xs font-semibold text-sky-700">Belum valid: {{ $unverifiedDocument }}</span>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 gap-6 xl:grid-cols-3">
|
<div class="grid grid-cols-1 gap-6 xl:grid-cols-3">
|
||||||
<x-master-card title="Identitas Utama" subtitle="Informasi inti siswa.">
|
<x-master-card title="Identitas Utama" subtitle="Informasi inti siswa.">
|
||||||
<div class="mb-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 shadow-sm ring-1 ring-white/70">
|
<div class="mb-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||||
<div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-gradient-to-br from-indigo-500 to-violet-600 text-white shadow-md shadow-indigo-500/25">
|
<div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-indigo-100 text-indigo-600">
|
||||||
<i class="fa-solid fa-id-card text-lg"></i>
|
<i class="fa-solid fa-id-card text-lg"></i>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@@ -193,7 +84,7 @@
|
|||||||
|
|
||||||
<x-master-card title="Akademik" subtitle="Relasi akademik siswa.">
|
<x-master-card title="Akademik" subtitle="Relasi akademik siswa.">
|
||||||
<div class="mb-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 shadow-sm ring-1 ring-white/70">
|
<div class="mb-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||||
<div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-gradient-to-br from-amber-400 to-orange-500 text-white shadow-md shadow-amber-500/25">
|
<div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-amber-100 text-amber-600">
|
||||||
<i class="fa-solid fa-graduation-cap text-lg"></i>
|
<i class="fa-solid fa-graduation-cap text-lg"></i>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@@ -211,7 +102,7 @@
|
|||||||
|
|
||||||
<x-master-card title="Kontak & Alamat" subtitle="Informasi komunikasi siswa.">
|
<x-master-card title="Kontak & Alamat" subtitle="Informasi komunikasi siswa.">
|
||||||
<div class="mb-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 shadow-sm ring-1 ring-white/70">
|
<div class="mb-4 flex items-center gap-3 rounded-2xl border border-slate-200 bg-slate-50 px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||||
<div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-gradient-to-br from-emerald-500 to-teal-600 text-white shadow-md shadow-emerald-500/25">
|
<div class="flex h-11 w-11 items-center justify-center rounded-2xl bg-emerald-100 text-emerald-600">
|
||||||
<i class="fa-solid fa-address-book text-lg"></i>
|
<i class="fa-solid fa-address-book text-lg"></i>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
@@ -241,46 +132,37 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@if ($student->academicHistories->isEmpty())
|
@if ($student->academicHistories->isEmpty())
|
||||||
<div class="rounded-2xl border border-dashed border-slate-200 bg-slate-50 px-5 py-6 text-sm text-slate-500">Belum ada histori akademik untuk siswa ini.</div>
|
<div class="text-sm text-slate-500">Belum ada histori akademik untuk siswa ini.</div>
|
||||||
@else
|
@else
|
||||||
<div class="relative pl-8 space-y-6">
|
<div class="overflow-x-auto">
|
||||||
<div class="absolute left-[13px] top-2 bottom-2 w-0.5 bg-gradient-to-b from-indigo-300 via-slate-200 to-slate-200"></div>
|
<table class="min-w-full divide-y divide-slate-200">
|
||||||
@foreach ($student->academicHistories as $history)
|
<thead class="bg-slate-50">
|
||||||
<div class="relative">
|
<tr>
|
||||||
<div class="absolute -left-8 top-1.5 w-7 h-7 rounded-full flex items-center justify-center shadow-md ring-4 ring-white
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Tahun</th>
|
||||||
{{ $history->is_current ? 'bg-gradient-to-br from-emerald-500 to-teal-600 shadow-emerald-500/30' : 'bg-white border-2 border-slate-200' }}">
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Jurusan</th>
|
||||||
@if ($history->is_current)
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Kelas</th>
|
||||||
<i class="fa-solid fa-check text-[10px] text-white"></i>
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Status</th>
|
||||||
@else
|
<th class="px-4 py-3 text-left text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Periode</th>
|
||||||
<i class="fa-solid fa-school text-[10px] text-slate-400"></i>
|
</tr>
|
||||||
@endif
|
</thead>
|
||||||
</div>
|
<tbody class="divide-y divide-slate-100 bg-white">
|
||||||
<div class="rounded-2xl border border-slate-200 bg-gradient-to-br from-white via-slate-50 to-indigo-50/20 p-4 shadow-sm shadow-slate-200/40 ring-1 ring-white/70 transition hover:-translate-y-0.5 hover:shadow-lg hover:shadow-slate-200/60">
|
@foreach ($student->academicHistories as $history)
|
||||||
<div class="flex flex-wrap items-center gap-2">
|
<tr>
|
||||||
<span class="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-lg bg-indigo-50 border border-indigo-100 text-indigo-700 text-xs font-bold">
|
<td class="px-4 py-3 text-sm text-slate-700">{{ $history->academicYear?->name ?: '-' }}</td>
|
||||||
<i class="fa-solid fa-calendar-days text-[10px]"></i> {{ $history->academicYear?->name ?: '-' }}
|
<td class="px-4 py-3 text-sm text-slate-600">{{ $history->department?->name ?: '-' }}</td>
|
||||||
</span>
|
<td class="px-4 py-3 text-sm text-slate-600">{{ $history->classRoom?->name ?: '-' }}</td>
|
||||||
<span class="px-2.5 py-1 rounded-full {{ $history->is_current ? 'bg-emerald-50 border border-emerald-100 text-emerald-600' : 'bg-slate-100 text-slate-500' }} text-[11px] font-bold">
|
<td class="px-4 py-3 text-sm text-slate-600">
|
||||||
{{ $history->is_current ? 'Aktif Sekarang' : ucfirst($history->status) }}
|
<span class="rounded-full {{ $history->is_current ? 'bg-emerald-100 text-emerald-700' : 'bg-slate-100 text-slate-600' }} px-3 py-1 text-xs font-semibold">
|
||||||
</span>
|
{{ $history->is_current ? 'Aktif Sekarang' : ucfirst($history->status) }}
|
||||||
</div>
|
</span>
|
||||||
<div class="mt-3 grid grid-cols-1 sm:grid-cols-2 gap-3 text-sm">
|
</td>
|
||||||
<div class="flex items-center gap-2 text-slate-600">
|
<td class="px-4 py-3 text-sm text-slate-500">
|
||||||
<i class="fa-solid fa-school text-slate-300 w-4"></i>
|
{{ $history->start_date?->format('d-m-Y') ?: '-' }} s/d {{ $history->end_date?->format('d-m-Y') ?: 'Sekarang' }}
|
||||||
<span class="font-semibold text-slate-800">{{ $history->classRoom?->name ?: '-' }}</span>
|
</td>
|
||||||
</div>
|
</tr>
|
||||||
<div class="flex items-center gap-2 text-slate-600">
|
@endforeach
|
||||||
<i class="fa-solid fa-sitemap text-slate-300 w-4"></i>
|
</tbody>
|
||||||
<span>{{ $history->department?->name ?: '-' }}</span>
|
</table>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<p class="mt-2 text-[11px] text-slate-400 flex items-center gap-1.5">
|
|
||||||
<i class="fa-regular fa-clock"></i>
|
|
||||||
{{ $history->start_date?->format('d-m-Y') ?: '-' }} s/d {{ $history->end_date?->format('d-m-Y') ?: 'Sekarang' }}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endforeach
|
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
</x-master-card>
|
</x-master-card>
|
||||||
@@ -727,4 +609,8 @@
|
|||||||
</x-master-card>
|
</x-master-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-6 flex flex-wrap items-center gap-3">
|
||||||
|
<a href="{{ route('students.edit', $student) }}" class="rounded-2xl bg-indigo-600 px-5 py-3 text-sm font-semibold text-white shadow-lg shadow-indigo-200 transition hover:bg-indigo-700">Edit Siswa</a>
|
||||||
|
<a href="{{ route('students.index') }}" class="rounded-2xl border border-slate-200 px-5 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">Kembali</a>
|
||||||
|
</div>
|
||||||
</x-master-page>
|
</x-master-page>
|
||||||
|
|||||||
Reference in New Issue
Block a user