feat: form presensi manual (attendances/create) — opsi status PKL (P ungu) + warna selaras (S=amber); rotasi H→S→I→P→A→T; tombol bulk 'Semua PKL'; legenda & teks info
This commit is contained in:
@@ -154,9 +154,11 @@
|
|||||||
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'hadir')" title="Semua Hadir"
|
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'hadir')" title="Semua Hadir"
|
||||||
class="w-8 h-8 rounded-lg text-xs font-bold bg-emerald-100 text-emerald-700 border-2 border-emerald-300 hover:bg-emerald-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">H</button>
|
class="w-8 h-8 rounded-lg text-xs font-bold bg-emerald-100 text-emerald-700 border-2 border-emerald-300 hover:bg-emerald-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">H</button>
|
||||||
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'sakit')" title="Semua Sakit"
|
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'sakit')" title="Semua Sakit"
|
||||||
class="w-8 h-8 rounded-lg text-xs font-bold bg-purple-100 text-purple-700 border-2 border-purple-300 hover:bg-purple-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">S</button>
|
class="w-8 h-8 rounded-lg text-xs font-bold bg-amber-100 text-amber-700 border-2 border-amber-300 hover:bg-amber-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">S</button>
|
||||||
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'izin')" title="Semua Izin"
|
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'izin')" title="Semua Izin"
|
||||||
class="w-8 h-8 rounded-lg text-xs font-bold bg-blue-100 text-blue-700 border-2 border-blue-300 hover:bg-blue-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">I</button>
|
class="w-8 h-8 rounded-lg text-xs font-bold bg-blue-100 text-blue-700 border-2 border-blue-300 hover:bg-blue-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">I</button>
|
||||||
|
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'pkl')" title="Semua PKL"
|
||||||
|
class="w-8 h-8 rounded-lg text-xs font-bold bg-violet-100 text-violet-700 border-2 border-violet-300 hover:bg-violet-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">P</button>
|
||||||
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'alpha')" title="Semua Alpha"
|
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'alpha')" title="Semua Alpha"
|
||||||
class="w-8 h-8 rounded-lg text-xs font-bold bg-red-100 text-red-700 border-2 border-red-300 hover:bg-red-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">A</button>
|
class="w-8 h-8 rounded-lg text-xs font-bold bg-red-100 text-red-700 border-2 border-red-300 hover:bg-red-200 hover:scale-110 active:scale-95 transition-all duration-150 shadow-sm">A</button>
|
||||||
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'terlambat')" title="Semua Terlambat"
|
<button type="button" onclick="studentBulkSet('{{ $s->id }}', 'terlambat')" title="Semua Terlambat"
|
||||||
@@ -172,19 +174,20 @@
|
|||||||
$statusColors = [
|
$statusColors = [
|
||||||
'belum' => 'bg-gray-100 border-gray-300 text-gray-400 hover:bg-gray-200',
|
'belum' => 'bg-gray-100 border-gray-300 text-gray-400 hover:bg-gray-200',
|
||||||
'hadir' => 'bg-emerald-100 border-emerald-300 text-emerald-700 hover:bg-emerald-200',
|
'hadir' => 'bg-emerald-100 border-emerald-300 text-emerald-700 hover:bg-emerald-200',
|
||||||
'sakit' => 'bg-purple-100 border-purple-300 text-purple-700 hover:bg-purple-200',
|
'sakit' => 'bg-amber-100 border-amber-300 text-amber-700 hover:bg-amber-200',
|
||||||
'izin' => 'bg-blue-100 border-blue-300 text-blue-700 hover:bg-blue-200',
|
'izin' => 'bg-blue-100 border-blue-300 text-blue-700 hover:bg-blue-200',
|
||||||
|
'pkl' => 'bg-violet-100 border-violet-300 text-violet-700 hover:bg-violet-200',
|
||||||
'alpha' => 'bg-red-100 border-red-300 text-red-700 hover:bg-red-200',
|
'alpha' => 'bg-red-100 border-red-300 text-red-700 hover:bg-red-200',
|
||||||
'terlambat' => 'bg-yellow-100 border-yellow-300 text-yellow-700 hover:bg-yellow-200',
|
'terlambat' => 'bg-yellow-100 border-yellow-300 text-yellow-700 hover:bg-yellow-200',
|
||||||
];
|
];
|
||||||
$statusLabels = [
|
$statusLabels = [
|
||||||
'belum' => '—',
|
'belum' => '—',
|
||||||
'hadir' => 'H', 'sakit' => 'S', 'izin' => 'I',
|
'hadir' => 'H', 'sakit' => 'S', 'izin' => 'I', 'pkl' => 'P',
|
||||||
'alpha' => 'A', 'terlambat' => 'T',
|
'alpha' => 'A', 'terlambat' => 'T',
|
||||||
];
|
];
|
||||||
$statusFull = [
|
$statusFull = [
|
||||||
'belum' => 'Belum diisi',
|
'belum' => 'Belum diisi',
|
||||||
'hadir' => 'Hadir', 'sakit' => 'Sakit', 'izin' => 'Izin',
|
'hadir' => 'Hadir', 'sakit' => 'Sakit', 'izin' => 'Izin', 'pkl' => 'PKL',
|
||||||
'alpha' => 'Alpha', 'terlambat' => 'Terlambat',
|
'alpha' => 'Alpha', 'terlambat' => 'Terlambat',
|
||||||
];
|
];
|
||||||
@endphp
|
@endphp
|
||||||
@@ -224,8 +227,9 @@
|
|||||||
@php
|
@php
|
||||||
$legends = [
|
$legends = [
|
||||||
'hadir' => ['emerald', 'H', 'Hadir'],
|
'hadir' => ['emerald', 'H', 'Hadir'],
|
||||||
'sakit' => ['purple', 'S', 'Sakit'],
|
'sakit' => ['amber', 'S', 'Sakit'],
|
||||||
'izin' => ['blue', 'I', 'Izin'],
|
'izin' => ['blue', 'I', 'Izin'],
|
||||||
|
'pkl' => ['violet', 'P', 'PKL'],
|
||||||
'alpha' => ['red', 'A', 'Alpha'],
|
'alpha' => ['red', 'A', 'Alpha'],
|
||||||
'terlambat' => ['yellow', 'T', 'Terlambat'],
|
'terlambat' => ['yellow', 'T', 'Terlambat'],
|
||||||
];
|
];
|
||||||
@@ -252,7 +256,7 @@
|
|||||||
<div class="w-6 h-6 rounded-lg bg-emerald-100 flex items-center justify-center flex-shrink-0 shadow-sm">
|
<div class="w-6 h-6 rounded-lg bg-emerald-100 flex items-center justify-center flex-shrink-0 shadow-sm">
|
||||||
<i class="fa-solid fa-circle-info text-emerald-500 text-[10px]"></i>
|
<i class="fa-solid fa-circle-info text-emerald-500 text-[10px]"></i>
|
||||||
</div>
|
</div>
|
||||||
<span>Siswa dengan status <strong>Alpha (A)</strong> minimal 1 jam akan otomatis dicatat sebagai pelanggaran. Klik tombol status untuk <strong>rotasi</strong>: H → S → I → A → T → H.</span>
|
<span>Siswa dengan status <strong>Alpha (A)</strong> minimal 1 jam akan otomatis dicatat sebagai pelanggaran. Klik tombol status untuk <strong>rotasi</strong>: H → S → I → P → A → T → H.</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -263,23 +267,24 @@
|
|||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script>
|
<script>
|
||||||
const STATUS_CYCLE = ['belum', 'hadir', 'sakit', 'izin', 'alpha', 'terlambat'];
|
const STATUS_CYCLE = ['belum', 'hadir', 'sakit', 'izin', 'pkl', 'alpha', 'terlambat'];
|
||||||
const STATUS_COLORS = {
|
const STATUS_COLORS = {
|
||||||
'belum': 'bg-gray-100 border-gray-300 text-gray-400 hover:bg-gray-200',
|
'belum': 'bg-gray-100 border-gray-300 text-gray-400 hover:bg-gray-200',
|
||||||
'hadir': 'bg-emerald-100 border-emerald-300 text-emerald-700 hover:bg-emerald-200',
|
'hadir': 'bg-emerald-100 border-emerald-300 text-emerald-700 hover:bg-emerald-200',
|
||||||
'sakit': 'bg-purple-100 border-purple-300 text-purple-700 hover:bg-purple-200',
|
'sakit': 'bg-amber-100 border-amber-300 text-amber-700 hover:bg-amber-200',
|
||||||
'izin': 'bg-blue-100 border-blue-300 text-blue-700 hover:bg-blue-200',
|
'izin': 'bg-blue-100 border-blue-300 text-blue-700 hover:bg-blue-200',
|
||||||
|
'pkl': 'bg-violet-100 border-violet-300 text-violet-700 hover:bg-violet-200',
|
||||||
'alpha': 'bg-red-100 border-red-300 text-red-700 hover:bg-red-200',
|
'alpha': 'bg-red-100 border-red-300 text-red-700 hover:bg-red-200',
|
||||||
'terlambat': 'bg-yellow-100 border-yellow-300 text-yellow-700 hover:bg-yellow-200',
|
'terlambat': 'bg-yellow-100 border-yellow-300 text-yellow-700 hover:bg-yellow-200',
|
||||||
};
|
};
|
||||||
const STATUS_LABELS = {
|
const STATUS_LABELS = {
|
||||||
'belum': '-',
|
'belum': '-',
|
||||||
'hadir': 'H', 'sakit': 'S', 'izin': 'I',
|
'hadir': 'H', 'sakit': 'S', 'izin': 'I', 'pkl': 'P',
|
||||||
'alpha': 'A', 'terlambat': 'T',
|
'alpha': 'A', 'terlambat': 'T',
|
||||||
};
|
};
|
||||||
const STATUS_FULL = {
|
const STATUS_FULL = {
|
||||||
'belum': 'Belum diisi',
|
'belum': 'Belum diisi',
|
||||||
'hadir': 'Hadir', 'sakit': 'Sakit', 'izin': 'Izin',
|
'hadir': 'Hadir', 'sakit': 'Sakit', 'izin': 'Izin', 'pkl': 'PKL',
|
||||||
'alpha': 'Alpha', 'terlambat': 'Terlambat',
|
'alpha': 'Alpha', 'terlambat': 'Terlambat',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user