feat: update student import and graduation workflows
This commit is contained in:
@@ -1,19 +1,129 @@
|
||||
<x-master-page title="Data Siswa Keluar" description="Data siswa yang sudah dipindahkan ke tabel arsip siswa keluar saat statusnya diubah menjadi Keluar.">
|
||||
<x-master-card title="Filter Data Siswa Keluar" subtitle="Cari data siswa keluar berdasarkan identitas dan akademik terakhir.">
|
||||
<form method="GET" action="{{ route('student-exits.index') }}" class="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4">
|
||||
<x-form-input name="search" label="Pencarian" :value="$search" placeholder="Nama / NIS / NISN" />
|
||||
<x-form-select name="academic_year_id" label="Tahun Angkatan" :options="$academicYears->all()" :value="$filters['academic_year_id']" />
|
||||
<x-form-select name="department_id" label="Program Keahlian" :options="$departments->all()" :value="$filters['department_id']" />
|
||||
<x-form-select name="class_id" label="Kelas Terakhir" :options="$classes->all()" :value="$filters['class_id']" />
|
||||
|
||||
<div class="flex items-end gap-3 md:col-span-2 xl:col-span-4">
|
||||
<button type="submit" class="rounded-2xl bg-slate-900 px-5 py-3 text-sm font-semibold text-white transition hover:bg-slate-800">Cari</button>
|
||||
<a href="{{ route('student-exits.index') }}" class="rounded-2xl border border-slate-200 px-5 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">Reset</a>
|
||||
<div class="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-5">
|
||||
<div class="group rounded-3xl border border-slate-200 bg-gradient-to-br from-white via-slate-50 to-rose-50/40 p-6 shadow-sm shadow-slate-200/50 ring-1 ring-white/70 transition hover:-translate-y-0.5 hover:shadow-lg hover:shadow-slate-200/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-slate-500">Total Arsip Keluar</div>
|
||||
<div class="mt-3 text-3xl font-bold text-slate-900">{{ $summary['total'] }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-rose-600 ring-1 ring-rose-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-right-from-bracket text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</x-master-card>
|
||||
</div>
|
||||
|
||||
<div class="group rounded-3xl border border-emerald-200 bg-gradient-to-br from-white via-emerald-50/50 to-emerald-100/60 p-6 shadow-sm shadow-emerald-100/50 ring-1 ring-white/70 transition hover:-translate-y-0.5 hover:shadow-lg hover:shadow-emerald-200/60">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-emerald-700">Sudah Ada Surat</div>
|
||||
<div class="mt-3 text-3xl font-bold text-emerald-800">{{ $summary['with_letter'] }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-emerald-600 ring-1 ring-emerald-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-file-circle-check text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group rounded-3xl border {{ $summary['without_letter'] > 0 ? 'border-amber-200 bg-gradient-to-br from-white via-amber-50/50 to-amber-100/60' : 'border-sky-200 bg-gradient-to-br from-white via-sky-50/50 to-sky-100/60' }} p-6 shadow-sm {{ $summary['without_letter'] > 0 ? 'shadow-amber-100/50' : 'shadow-sky-100/50' }} ring-1 ring-white/70 transition hover:-translate-y-0.5 hover:shadow-lg {{ $summary['without_letter'] > 0 ? 'hover:shadow-amber-200/60' : 'hover:shadow-sky-200/60' }}">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium {{ $summary['without_letter'] > 0 ? 'text-amber-700' : 'text-sky-700' }}">Belum Ada Surat</div>
|
||||
<div class="mt-3 text-3xl font-bold {{ $summary['without_letter'] > 0 ? 'text-amber-800' : 'text-sky-800' }}">{{ $summary['without_letter'] }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 {{ $summary['without_letter'] > 0 ? 'text-amber-600 ring-1 ring-amber-100' : 'text-sky-600 ring-1 ring-sky-100' }} backdrop-blur-sm">
|
||||
<i class="fa-solid {{ $summary['without_letter'] > 0 ? 'fa-file-circle-xmark' : 'fa-folder-open' }} text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group rounded-3xl border border-fuchsia-200 bg-gradient-to-br from-white via-fuchsia-50/50 to-fuchsia-100/60 p-6 shadow-sm shadow-fuchsia-100/50 ring-1 ring-white/70 transition hover:-translate-y-0.5 hover:shadow-lg hover:shadow-fuchsia-200/60">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-fuchsia-700">Keluar Tahun Ini</div>
|
||||
<div class="mt-3 text-3xl font-bold text-fuchsia-800">{{ $summary['this_year'] }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-fuchsia-600 ring-1 ring-fuchsia-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-calendar-check text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group rounded-3xl border border-slate-200 bg-gradient-to-br from-white via-slate-50 to-slate-100/70 p-6 shadow-sm shadow-slate-200/50 ring-1 ring-white/70 transition hover:-translate-y-0.5 hover:shadow-lg hover:shadow-slate-200/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-slate-500">Hasil Filter</div>
|
||||
<div class="mt-3 text-3xl font-bold text-slate-900">{{ $summary['filtered'] }}</div>
|
||||
<div class="mt-2 text-xs text-slate-500">{{ $summary['latest_exit_date'] ? 'Update terakhir ' . \Illuminate\Support\Carbon::parse($summary['latest_exit_date'])->format('d M Y') : 'Belum ada tanggal keluar' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-slate-600 ring-1 ring-slate-200 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-filter text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 gap-6 xl:grid-cols-[1.15fr_0.85fr]">
|
||||
<x-master-card title="Filter Data Siswa Keluar" subtitle="Cari data siswa keluar berdasarkan identitas dan akademik terakhir.">
|
||||
<div class="rounded-3xl border border-slate-200 bg-gradient-to-br from-white via-slate-50 to-rose-50/30 p-4 shadow-sm ring-1 ring-white/70">
|
||||
<form method="GET" action="{{ route('student-exits.index') }}" class="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4">
|
||||
<x-form-input name="search" label="Pencarian" :value="$search" placeholder="Nama / NIS / NISN" />
|
||||
<x-form-select name="academic_year_id" label="Tahun Angkatan" :options="$academicYears->all()" :value="$filters['academic_year_id']" />
|
||||
<x-form-select name="department_id" label="Program Keahlian" :options="$departments->all()" :value="$filters['department_id']" />
|
||||
<x-form-select name="class_id" label="Kelas Terakhir" :options="$classes->all()" :value="$filters['class_id']" />
|
||||
|
||||
<div class="flex flex-wrap items-end gap-3 md:col-span-2 xl:col-span-4">
|
||||
<button type="submit" class="inline-flex items-center gap-2 rounded-2xl bg-slate-900 px-5 py-3 text-sm font-semibold text-white transition hover:bg-slate-800">
|
||||
<i class="fa-solid fa-magnifying-glass"></i>
|
||||
<span>Cari</span>
|
||||
</button>
|
||||
<a href="{{ route('student-exits.index') }}" class="inline-flex items-center gap-2 rounded-2xl border border-slate-200 bg-white px-5 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">
|
||||
<i class="fa-solid fa-rotate-left"></i>
|
||||
<span>Reset</span>
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</x-master-card>
|
||||
|
||||
<x-master-card title="Aktivitas Terbaru" subtitle="Tiga arsip siswa keluar terbaru yang masuk ke sistem.">
|
||||
@if ($recentExits->isEmpty())
|
||||
<div class="rounded-2xl border border-dashed border-slate-200 bg-slate-50 px-4 py-6 text-sm text-slate-500">
|
||||
Belum ada arsip siswa keluar terbaru untuk ditampilkan.
|
||||
</div>
|
||||
@else
|
||||
<div class="space-y-3">
|
||||
@foreach ($recentExits as $recentExit)
|
||||
<div class="rounded-2xl border border-slate-200 bg-slate-50/80 px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-semibold text-slate-800">{{ $recentExit->full_name }}</div>
|
||||
<div class="mt-1 text-xs text-slate-500">{{ $recentExit->department?->name ?: '-' }} · {{ $recentExit->classRoom?->name ?: '-' }}</div>
|
||||
</div>
|
||||
<span class="rounded-full bg-white px-3 py-1 text-[11px] font-semibold text-slate-600 ring-1 ring-slate-200">
|
||||
{{ $recentExit->exit_date?->format('d M Y') ?: 'Tanggal belum diisi' }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</x-master-card>
|
||||
</div>
|
||||
|
||||
<div class="overflow-hidden rounded-3xl border border-slate-200 bg-white shadow-sm shadow-slate-200/50 ring-1 ring-white/70">
|
||||
<div class="border-b border-slate-200 bg-gradient-to-r from-white via-slate-50 to-rose-50/30 px-6 py-5">
|
||||
<div class="flex flex-col gap-2 lg:flex-row lg:items-center lg:justify-between">
|
||||
<div>
|
||||
<div class="text-lg font-semibold text-slate-800">Daftar Siswa Keluar</div>
|
||||
<div class="mt-1 text-sm text-slate-500">Arsip ini terisi otomatis saat status siswa diubah menjadi keluar.</div>
|
||||
</div>
|
||||
<div class="inline-flex items-center gap-2 rounded-full bg-slate-900 px-3 py-1.5 text-[11px] font-semibold uppercase tracking-[0.16em] text-white shadow-sm">
|
||||
<i class="fa-solid fa-box-archive"></i>
|
||||
{{ $studentExits->total() }} data terfilter
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<x-master-card title="Daftar Siswa Keluar" subtitle="Arsip ini terisi otomatis saat status siswa diubah menjadi Keluar.">
|
||||
<div class="overflow-x-auto">
|
||||
<table class="min-w-full divide-y divide-slate-200">
|
||||
<thead class="bg-slate-50">
|
||||
@@ -28,44 +138,75 @@
|
||||
</thead>
|
||||
<tbody class="divide-y divide-slate-100 bg-white">
|
||||
@forelse ($studentExits as $studentExit)
|
||||
<tr>
|
||||
<tr class="transition hover:bg-slate-50/80">
|
||||
<td class="px-6 py-4 text-sm text-slate-700">
|
||||
<div class="font-semibold text-slate-800">{{ $studentExit->full_name }}</div>
|
||||
<div class="mt-1 text-xs text-slate-500">NIS: {{ $studentExit->student_number ?: '-' }} · NISN: {{ $studentExit->nisn ?: '-' }}</div>
|
||||
<div class="flex items-start gap-3">
|
||||
<div class="flex h-11 w-11 shrink-0 items-center justify-center rounded-2xl bg-rose-100 text-sm font-bold text-rose-700">
|
||||
{{ strtoupper(mb_substr($studentExit->full_name, 0, 1)) }}
|
||||
</div>
|
||||
<div>
|
||||
<div class="font-semibold text-slate-800">{{ $studentExit->full_name }}</div>
|
||||
<div class="mt-1 text-xs text-slate-500">NIS: {{ $studentExit->student_number ?: '-' }} · NISN: {{ $studentExit->nisn ?: '-' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="px-6 py-4 text-sm text-slate-600">
|
||||
<div>{{ $studentExit->academicYear?->name ?: '-' }}</div>
|
||||
<div class="font-medium text-slate-700">{{ $studentExit->academicYear?->name ?: '-' }}</div>
|
||||
<div>{{ $studentExit->department?->name ?: '-' }}</div>
|
||||
<div>{{ $studentExit->classRoom?->name ?: '-' }}</div>
|
||||
<div class="text-xs text-slate-500">{{ $studentExit->classRoom?->name ?: '-' }}</div>
|
||||
</td>
|
||||
<td class="px-6 py-4 text-sm text-slate-600">
|
||||
<div class="inline-flex items-center gap-2 rounded-2xl border border-slate-200 bg-slate-50 px-3 py-2">
|
||||
<i class="fa-solid fa-calendar-days text-xs text-slate-400"></i>
|
||||
<span>{{ $studentExit->exit_date?->format('d-m-Y') ?: '-' }}</span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="px-6 py-4 text-sm text-slate-600">{{ $studentExit->exit_date?->format('d-m-Y') ?: '-' }}</td>
|
||||
<td class="px-6 py-4 text-sm text-slate-600">
|
||||
@if ($studentExit->exit_letter_file_path)
|
||||
<span class="inline-flex rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-700">Sudah diupload</span>
|
||||
<span class="inline-flex items-center gap-2 rounded-full bg-emerald-100 px-3 py-1 text-xs font-semibold text-emerald-700">
|
||||
<i class="fa-solid fa-circle-check"></i>
|
||||
<span>Sudah diupload</span>
|
||||
</span>
|
||||
<div class="mt-2 text-xs text-slate-500">{{ $studentExit->exit_letter_file_name }}</div>
|
||||
<div class="mt-3">
|
||||
<a href="{{ route('student-exits.preview-letter', $studentExit) }}" class="inline-flex items-center rounded-xl border border-sky-200 px-3 py-2 text-xs font-semibold text-sky-700 transition hover:bg-sky-50">Preview Surat</a>
|
||||
<a href="{{ route('student-exits.preview-letter', $studentExit) }}" class="inline-flex items-center gap-2 rounded-xl border border-sky-200 bg-sky-50 px-3 py-2 text-xs font-semibold text-sky-700 transition hover:bg-sky-100">
|
||||
<i class="fa-solid fa-eye"></i>
|
||||
<span>Preview Surat</span>
|
||||
</a>
|
||||
</div>
|
||||
@else
|
||||
<span class="inline-flex rounded-full bg-amber-100 px-3 py-1 text-xs font-semibold text-amber-700">Surat Keluar belum di upload</span>
|
||||
<span class="inline-flex items-center gap-2 rounded-full bg-amber-100 px-3 py-1 text-xs font-semibold text-amber-700">
|
||||
<i class="fa-solid fa-triangle-exclamation"></i>
|
||||
<span>Belum upload surat</span>
|
||||
</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="px-6 py-4 text-sm text-slate-600">{{ $studentExit->exit_reason ?: '-' }}</td>
|
||||
<td class="px-6 py-4 text-sm text-slate-600">
|
||||
<div class="line-clamp-3">{{ $studentExit->exit_reason ?: '-' }}</div>
|
||||
</td>
|
||||
<td class="px-6 py-4 text-sm">
|
||||
<a href="{{ route('student-exits.show', $studentExit) }}" class="rounded-xl border border-sky-200 px-3 py-2 text-xs font-semibold text-sky-700 transition hover:bg-sky-50">Detail Arsip</a>
|
||||
<a href="{{ route('student-exits.show', $studentExit) }}" class="inline-flex items-center gap-2 rounded-xl border border-sky-200 bg-sky-50 px-3 py-2 text-xs font-semibold text-sky-700 transition hover:bg-sky-100">
|
||||
<i class="fa-solid fa-arrow-up-right-from-square"></i>
|
||||
<span>Detail Arsip</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="6" class="px-6 py-10 text-center text-sm text-slate-500">Belum ada data siswa keluar.</td>
|
||||
<td colspan="6" class="px-6 py-12 text-center text-sm text-slate-500">
|
||||
<div class="mx-auto max-w-md">
|
||||
<div class="text-base font-semibold text-slate-700">Belum ada data siswa keluar.</div>
|
||||
<div class="mt-2 text-sm text-slate-500">Arsip keluar akan muncul otomatis saat status siswa diubah menjadi keluar.</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-5">
|
||||
{{ $studentExits->links() }}
|
||||
</div>
|
||||
</x-master-card>
|
||||
<div class="mt-6 flex justify-end">
|
||||
{{ $studentExits->onEachSide(1)->links() }}
|
||||
</div>
|
||||
</x-master-page>
|
||||
|
||||
@@ -1,38 +1,141 @@
|
||||
<x-master-page title="Preview Surat Keluar" description="Lihat surat keluar siswa langsung di browser bila format mendukung.">
|
||||
<div class="grid grid-cols-1 gap-6 xl:grid-cols-3">
|
||||
<x-master-card title="Informasi Surat Keluar" subtitle="Metadata surat keluar siswa.">
|
||||
<div class="space-y-4 text-sm text-slate-600">
|
||||
<div><span class="font-semibold text-slate-800">Nama Siswa:</span> {{ $studentExit->full_name }}</div>
|
||||
<div><span class="font-semibold text-slate-800">Nama File:</span> {{ $studentExit->exit_letter_file_name ?: '-' }}</div>
|
||||
<div><span class="font-semibold text-slate-800">Tipe MIME:</span> {{ $mimeType ?: '-' }}</div>
|
||||
<div><span class="font-semibold text-slate-800">Ukuran:</span> {{ $studentExit->exit_letter_file_size ? number_format($studentExit->exit_letter_file_size / 1024, 1) . ' KB' : '-' }}</div>
|
||||
<div><span class="font-semibold text-slate-800">Tanggal Keluar:</span> {{ $studentExit->exit_date?->format('d-m-Y') ?: '-' }}</div>
|
||||
<div><span class="font-semibold text-slate-800">Catatan:</span> {{ $studentExit->exit_reason ?: '-' }}</div>
|
||||
<div class="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4">
|
||||
<div class="rounded-3xl border border-slate-200 bg-gradient-to-br from-white via-slate-50 to-rose-50/40 p-6 shadow-sm shadow-slate-200/50 ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-slate-500">Nama Siswa</div>
|
||||
<div class="mt-3 text-lg font-bold text-slate-900">{{ $studentExit->full_name }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-rose-600 ring-1 ring-rose-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-user text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rounded-3xl border border-sky-200 bg-gradient-to-br from-white via-sky-50/50 to-sky-100/60 p-6 shadow-sm shadow-sky-100/50 ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-sky-700">Format File</div>
|
||||
<div class="mt-3 text-lg font-bold text-sky-800">{{ strtoupper(pathinfo($studentExit->exit_letter_file_name ?: '', PATHINFO_EXTENSION) ?: 'FILE') }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-sky-600 ring-1 ring-sky-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-file-lines text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rounded-3xl border border-emerald-200 bg-gradient-to-br from-white via-emerald-50/50 to-emerald-100/60 p-6 shadow-sm shadow-emerald-100/50 ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-emerald-700">Ukuran File</div>
|
||||
<div class="mt-3 text-lg font-bold text-emerald-800">{{ $studentExit->exit_letter_file_size ? number_format($studentExit->exit_letter_file_size / 1024, 1) . ' KB' : '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-emerald-600 ring-1 ring-emerald-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-weight-scale text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="rounded-3xl border border-fuchsia-200 bg-gradient-to-br from-white via-fuchsia-50/50 to-fuchsia-100/60 p-6 shadow-sm shadow-fuchsia-100/50 ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-fuchsia-700">Tanggal Keluar</div>
|
||||
<div class="mt-3 text-lg font-bold text-fuchsia-800">{{ $studentExit->exit_date?->format('d M Y') ?: 'Belum diisi' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-fuchsia-600 ring-1 ring-fuchsia-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-calendar-right text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 gap-6 xl:grid-cols-[380px_minmax(0,1fr)]">
|
||||
<x-master-card title="Informasi Surat Keluar" subtitle="Metadata file dan ringkasan arsip siswa keluar.">
|
||||
<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-rose-100 text-rose-600">
|
||||
<i class="fa-solid fa-folder-open text-lg"></i>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Metadata Dokumen</div>
|
||||
<div class="mt-1 text-sm font-semibold text-slate-800">Informasi cepat sebelum file dibuka atau diunduh</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="space-y-3 text-sm text-slate-600">
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-user"></i><span>Nama Siswa</span></div>
|
||||
<div class="mt-2 font-semibold text-slate-800">{{ $studentExit->full_name }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-file-signature"></i><span>Nama File</span></div>
|
||||
<div class="mt-2 break-words font-semibold text-slate-800">{{ $studentExit->exit_letter_file_name ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-code"></i><span>Tipe MIME</span></div>
|
||||
<div class="mt-2 text-slate-700">{{ $mimeType ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-weight-scale"></i><span>Ukuran File</span></div>
|
||||
<div class="mt-2 text-slate-700">{{ $studentExit->exit_letter_file_size ? number_format($studentExit->exit_letter_file_size / 1024, 1) . ' KB' : '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-calendar-days"></i><span>Tanggal Keluar</span></div>
|
||||
<div class="mt-2 text-slate-700">{{ $studentExit->exit_date?->format('d-m-Y') ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-align-left"></i><span>Catatan</span></div>
|
||||
<div class="mt-2 leading-6 text-slate-700">{{ $studentExit->exit_reason ?: '-' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-6 flex flex-wrap gap-3">
|
||||
<a href="{{ $fileUrl }}" target="_blank" rel="noopener noreferrer" class="rounded-2xl bg-sky-600 px-4 py-3 text-sm font-semibold text-white transition hover:bg-sky-700">Buka File Asli</a>
|
||||
<a href="{{ route('student-exits.index') }}" class="rounded-2xl border border-slate-200 px-4 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">Kembali</a>
|
||||
<a href="{{ $fileUrl }}" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 rounded-2xl bg-sky-600 px-4 py-3 text-sm font-semibold text-white transition hover:bg-sky-700">
|
||||
<i class="fa-solid fa-up-right-from-square"></i>
|
||||
<span>Buka File Asli</span>
|
||||
</a>
|
||||
<a href="{{ route('student-exits.show', $studentExit) }}" class="inline-flex items-center gap-2 rounded-2xl border border-slate-200 px-4 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">
|
||||
<i class="fa-solid fa-arrow-left"></i>
|
||||
<span>Kembali ke Detail</span>
|
||||
</a>
|
||||
</div>
|
||||
</x-master-card>
|
||||
|
||||
<div class="xl:col-span-2">
|
||||
<x-master-card title="Tampilan Surat Keluar" subtitle="Preview langsung untuk gambar dan PDF.">
|
||||
@if ($isImage)
|
||||
<div class="overflow-hidden rounded-2xl border border-slate-200 bg-slate-50 p-4">
|
||||
<img src="{{ $fileUrl }}" alt="{{ $studentExit->exit_letter_file_name }}" class="mx-auto max-h-[70vh] rounded-xl object-contain shadow-sm">
|
||||
<x-master-card title="Tampilan Surat Keluar" subtitle="Preview langsung untuk gambar dan PDF.">
|
||||
<div class="mb-4 flex items-center justify-between gap-3 rounded-2xl border border-slate-200 bg-gradient-to-r from-white via-slate-50 to-rose-50/30 px-4 py-3 shadow-sm ring-1 ring-white/70">
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Mode Preview</div>
|
||||
<div class="mt-1 text-sm font-semibold text-slate-800">
|
||||
@if ($isImage)
|
||||
Gambar langsung di browser
|
||||
@elseif ($isPdf)
|
||||
PDF embed di browser
|
||||
@else
|
||||
Preview tidak didukung
|
||||
@endif
|
||||
</div>
|
||||
@elseif ($isPdf)
|
||||
<div class="overflow-hidden rounded-2xl border border-slate-200 bg-slate-50">
|
||||
<iframe src="{{ $fileUrl }}" class="h-[75vh] w-full rounded-2xl" title="Preview Surat Keluar"></iframe>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-rose-600 ring-1 ring-rose-100 backdrop-blur-sm">
|
||||
<i class="fa-solid {{ $isImage ? 'fa-image' : ($isPdf ? 'fa-file-pdf' : 'fa-circle-info') }} text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if ($isImage)
|
||||
<div class="overflow-hidden rounded-3xl border border-slate-200 bg-slate-50 p-4 shadow-sm ring-1 ring-white/70">
|
||||
<img src="{{ $fileUrl }}" alt="{{ $studentExit->exit_letter_file_name }}" class="mx-auto max-h-[72vh] rounded-2xl object-contain shadow-sm">
|
||||
</div>
|
||||
@elseif ($isPdf)
|
||||
<div class="overflow-hidden rounded-3xl border border-slate-200 bg-slate-50 shadow-sm ring-1 ring-white/70">
|
||||
<iframe src="{{ $fileUrl }}" class="h-[78vh] w-full rounded-3xl" title="Preview Surat Keluar"></iframe>
|
||||
</div>
|
||||
@else
|
||||
<div class="rounded-3xl border border-dashed border-slate-300 bg-slate-50 p-10 text-center shadow-sm ring-1 ring-white/70">
|
||||
<div class="mx-auto flex h-14 w-14 items-center justify-center rounded-2xl bg-white text-slate-500 shadow-sm ring-1 ring-slate-200">
|
||||
<i class="fa-solid fa-file-circle-question text-xl"></i>
|
||||
</div>
|
||||
@else
|
||||
<div class="rounded-2xl border border-dashed border-slate-300 bg-slate-50 p-10 text-center">
|
||||
<div class="text-lg font-semibold text-slate-800">Preview tidak tersedia</div>
|
||||
<p class="mt-2 text-sm text-slate-500">Format file ini belum didukung untuk preview langsung di browser. Silakan gunakan tombol buka file asli.</p>
|
||||
</div>
|
||||
@endif
|
||||
</x-master-card>
|
||||
</div>
|
||||
<div class="mt-4 text-lg font-semibold text-slate-800">Preview tidak tersedia</div>
|
||||
<p class="mt-2 text-sm text-slate-500">Format file ini belum didukung untuk preview langsung di browser. Gunakan tombol buka file asli untuk melihat dokumen.</p>
|
||||
</div>
|
||||
@endif
|
||||
</x-master-card>
|
||||
</div>
|
||||
</x-master-page>
|
||||
|
||||
@@ -1,44 +1,109 @@
|
||||
<x-master-page title="Detail Arsip Siswa Keluar" description="Lihat ringkasan arsip siswa keluar dan kelola surat keluar tanpa masuk ke modul siswa aktif.">
|
||||
<div class="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4">
|
||||
<div class="rounded-3xl border border-slate-200 bg-gradient-to-br from-white via-slate-50 to-rose-50/40 p-6 shadow-sm shadow-slate-200/50 ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-slate-500">Status Arsip</div>
|
||||
<div class="mt-3 text-lg font-bold text-slate-900">Siswa Keluar</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-rose-600 ring-1 ring-rose-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-box-archive text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rounded-3xl border border-sky-200 bg-gradient-to-br from-white via-sky-50/50 to-sky-100/60 p-6 shadow-sm shadow-sky-100/50 ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-sky-700">Tanggal Keluar</div>
|
||||
<div class="mt-3 text-lg font-bold text-sky-800">{{ $studentExit->exit_date?->format('d M Y') ?: 'Belum diisi' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-sky-600 ring-1 ring-sky-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-calendar-right text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rounded-3xl border {{ $studentExit->exit_letter_file_path ? 'border-emerald-200 bg-gradient-to-br from-white via-emerald-50/50 to-emerald-100/60' : 'border-amber-200 bg-gradient-to-br from-white via-amber-50/50 to-amber-100/60' }} p-6 shadow-sm {{ $studentExit->exit_letter_file_path ? 'shadow-emerald-100/50' : 'shadow-amber-100/50' }} ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium {{ $studentExit->exit_letter_file_path ? 'text-emerald-700' : 'text-amber-700' }}">Surat Keluar</div>
|
||||
<div class="mt-3 text-lg font-bold {{ $studentExit->exit_letter_file_path ? 'text-emerald-800' : 'text-amber-800' }}">{{ $studentExit->exit_letter_file_path ? 'Sudah tersedia' : 'Belum diupload' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 {{ $studentExit->exit_letter_file_path ? 'text-emerald-600 ring-1 ring-emerald-100' : 'text-amber-600 ring-1 ring-amber-100' }} backdrop-blur-sm">
|
||||
<i class="fa-solid {{ $studentExit->exit_letter_file_path ? 'fa-file-circle-check' : 'fa-file-circle-xmark' }} text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rounded-3xl border border-fuchsia-200 bg-gradient-to-br from-white via-fuchsia-50/50 to-fuchsia-100/60 p-6 shadow-sm shadow-fuchsia-100/50 ring-1 ring-white/70">
|
||||
<div class="flex items-start justify-between gap-3">
|
||||
<div>
|
||||
<div class="text-sm font-medium text-fuchsia-700">Kelas Terakhir</div>
|
||||
<div class="mt-3 text-lg font-bold text-fuchsia-800">{{ $studentExit->classRoom?->name ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl bg-white/80 p-3 text-fuchsia-600 ring-1 ring-fuchsia-100 backdrop-blur-sm">
|
||||
<i class="fa-solid fa-school text-lg"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 gap-6 xl:grid-cols-3">
|
||||
<div class="xl:col-span-2 space-y-6">
|
||||
<x-master-card title="Identitas Siswa" subtitle="Snapshot data terakhir saat siswa dipindahkan ke arsip keluar.">
|
||||
<div class="grid grid-cols-1 gap-5 md:grid-cols-2">
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Nama Lengkap</div>
|
||||
<div class="mt-1 text-sm font-semibold text-slate-900">{{ $studentExit->full_name }}</div>
|
||||
<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-rose-100 text-rose-600">
|
||||
<i class="fa-solid fa-id-card text-lg"></i>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Status Arsip</div>
|
||||
<div class="mt-1"><span class="inline-flex rounded-full bg-rose-100 px-3 py-1 text-xs font-semibold text-rose-700">Siswa Keluar</span></div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Snapshot Identitas</div>
|
||||
<div class="mt-1 text-sm font-semibold text-slate-800">Identitas dasar siswa saat masuk arsip keluar</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">NIS</div>
|
||||
<div class="mt-1 text-sm text-slate-700">{{ $studentExit->student_number ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-user"></i><span>Nama Lengkap</span></div>
|
||||
<div class="mt-2 text-sm font-semibold text-slate-900">{{ $studentExit->full_name }}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">NISN</div>
|
||||
<div class="mt-1 text-sm text-slate-700">{{ $studentExit->nisn ?: '-' }}</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-badge-check"></i><span>Status Arsip</span></div>
|
||||
<div class="mt-2"><span class="inline-flex items-center gap-2 rounded-full bg-rose-100 px-3 py-1 text-xs font-semibold text-rose-700"><i class="fa-solid fa-right-from-bracket"></i><span>Siswa Keluar</span></span></div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-hashtag"></i><span>NIS</span></div>
|
||||
<div class="mt-2 text-sm text-slate-700">{{ $studentExit->student_number ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-fingerprint"></i><span>NISN</span></div>
|
||||
<div class="mt-2 text-sm text-slate-700">{{ $studentExit->nisn ?: '-' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-master-card>
|
||||
|
||||
<x-master-card title="Akademik Terakhir" subtitle="Data akademik terakhir sebelum status siswa menjadi keluar.">
|
||||
<div class="grid grid-cols-1 gap-5 md:grid-cols-2 xl:grid-cols-4">
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Tahun Angkatan</div>
|
||||
<div class="mt-1 text-sm text-slate-700">{{ $studentExit->academicYear?->name ?: '-' }}</div>
|
||||
<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-amber-100 text-amber-600">
|
||||
<i class="fa-solid fa-graduation-cap text-lg"></i>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Program Keahlian</div>
|
||||
<div class="mt-1 text-sm text-slate-700">{{ $studentExit->department?->name ?: '-' }}</div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Posisi Akademik Terakhir</div>
|
||||
<div class="mt-1 text-sm font-semibold text-slate-800">Rombel dan relasi akademik sebelum siswa keluar dari sekolah</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Kelas Terakhir</div>
|
||||
<div class="mt-1 text-sm text-slate-700">{{ $studentExit->classRoom?->name ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-4">
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-calendar-days"></i><span>Tahun Angkatan</span></div>
|
||||
<div class="mt-2 text-sm text-slate-700">{{ $studentExit->academicYear?->name ?: '-' }}</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-xs font-semibold uppercase tracking-[0.16em] text-slate-500">Tanggal Masuk</div>
|
||||
<div class="mt-1 text-sm text-slate-700">{{ $studentExit->entry_date?->format('d-m-Y') ?: '-' }}</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-sitemap"></i><span>Program Keahlian</span></div>
|
||||
<div class="mt-2 text-sm text-slate-700">{{ $studentExit->department?->name ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-school"></i><span>Kelas Terakhir</span></div>
|
||||
<div class="mt-2 text-sm text-slate-700">{{ $studentExit->classRoom?->name ?: '-' }}</div>
|
||||
</div>
|
||||
<div class="rounded-2xl border border-slate-200 bg-white px-4 py-4 shadow-sm ring-1 ring-white/70">
|
||||
<div class="flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.14em] text-slate-500"><i class="fa-solid fa-door-open"></i><span>Tanggal Masuk</span></div>
|
||||
<div class="mt-2 text-sm text-slate-700">{{ $studentExit->entry_date?->format('d-m-Y') ?: '-' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</x-master-card>
|
||||
@@ -48,20 +113,33 @@
|
||||
<x-master-card title="Dokumen Surat Keluar" subtitle="Upload atau ganti surat keluar langsung dari modul arsip.">
|
||||
<div class="space-y-4">
|
||||
@if ($studentExit->exit_letter_file_path)
|
||||
<div class="rounded-2xl border border-emerald-200 bg-emerald-50 px-4 py-4">
|
||||
<div class="text-sm font-semibold text-emerald-700">Surat keluar sudah tersedia</div>
|
||||
<div class="mt-1 text-xs text-emerald-600">{{ $studentExit->exit_letter_file_name }}</div>
|
||||
<div class="mt-3">
|
||||
<a href="{{ route('student-exits.preview-letter', $studentExit) }}" class="inline-flex items-center rounded-xl border border-sky-200 px-3 py-2 text-xs font-semibold text-sky-700 transition hover:bg-sky-50">Preview Surat</a>
|
||||
<div class="rounded-2xl border border-emerald-200 bg-gradient-to-r from-emerald-50 to-white px-4 py-4 shadow-sm shadow-emerald-100/40">
|
||||
<div class="flex items-start gap-3">
|
||||
<div class="flex h-10 w-10 items-center justify-center rounded-2xl bg-white text-emerald-600 shadow-sm ring-1 ring-emerald-100">
|
||||
<i class="fa-solid fa-file-circle-check"></i>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-sm font-semibold text-emerald-700">Surat keluar sudah tersedia</div>
|
||||
<div class="mt-1 text-xs text-emerald-600">{{ $studentExit->exit_letter_file_name }}</div>
|
||||
<div class="mt-3">
|
||||
<a href="{{ route('student-exits.preview-letter', $studentExit) }}" class="inline-flex items-center gap-2 rounded-xl border border-sky-200 bg-sky-50 px-3 py-2 text-xs font-semibold text-sky-700 transition hover:bg-sky-100">
|
||||
<i class="fa-solid fa-eye"></i>
|
||||
<span>Preview Surat</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="rounded-2xl border border-amber-200 bg-amber-50 px-4 py-4 text-sm font-medium text-amber-700">
|
||||
Surat keluar belum diupload.
|
||||
<div class="rounded-2xl border border-amber-200 bg-gradient-to-r from-amber-50 to-white px-4 py-4 text-sm font-medium text-amber-700 shadow-sm shadow-amber-100/40">
|
||||
<div class="flex items-center gap-3">
|
||||
<i class="fa-solid fa-triangle-exclamation"></i>
|
||||
<span>Surat keluar belum diupload.</span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<form method="POST" action="{{ route('student-exits.update', $studentExit) }}" enctype="multipart/form-data" class="space-y-4">
|
||||
<form method="POST" action="{{ route('student-exits.update', $studentExit) }}" enctype="multipart/form-data" class="space-y-4 rounded-3xl border border-slate-200 bg-gradient-to-br from-white via-slate-50 to-rose-50/25 p-4 shadow-sm ring-1 ring-white/70">
|
||||
@csrf
|
||||
@method('PATCH')
|
||||
|
||||
@@ -70,13 +148,16 @@
|
||||
|
||||
<div>
|
||||
<label for="exit_letter" class="mb-2 block text-sm font-medium text-slate-700">Upload / Ganti Surat Keluar</label>
|
||||
<input id="exit_letter" name="exit_letter" type="file" accept=".pdf,.jpg,.jpeg,.png" class="block w-full rounded-2xl border border-slate-200 bg-white px-4 py-3 text-sm text-slate-700 file:mr-4 file:rounded-xl file:border-0 file:bg-slate-100 file:px-4 file:py-2 file:text-sm file:font-semibold file:text-slate-700 hover:file:bg-slate-200">
|
||||
<div class="flex min-h-[3rem] items-center rounded-2xl border border-slate-200 bg-white px-3 py-2 transition focus-within:border-indigo-300 focus-within:ring-4 focus-within:ring-indigo-100">
|
||||
<input id="exit_letter" name="exit_letter" type="file" accept=".pdf,.jpg,.jpeg,.png" class="block w-full text-sm text-slate-700 file:mr-3 file:rounded-xl file:border-0 file:bg-slate-100 file:px-4 file:py-2.5 file:text-sm file:font-semibold file:text-slate-700 hover:file:bg-slate-200">
|
||||
</div>
|
||||
<p class="mt-2 text-xs text-slate-500">Format: PDF, JPG, JPEG, PNG. Maksimal 2 MB.</p>
|
||||
<x-input-error :messages="$errors->get('exit_letter')" class="mt-2" />
|
||||
</div>
|
||||
|
||||
<button type="submit" class="inline-flex items-center 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">
|
||||
Simpan Arsip Keluar
|
||||
<button type="submit" class="inline-flex items-center gap-2 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">
|
||||
<i class="fa-solid fa-floppy-disk"></i>
|
||||
<span>Simpan Arsip Keluar</span>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user