From 4afe6dbabee1a7b2c938c80b9f3987b9719c5b8f Mon Sep 17 00:00:00 2001 From: Bro Date: Fri, 24 Jul 2026 19:29:43 +0700 Subject: [PATCH] feat: UI premium Hak Akses Role - Per group: card terpisah dengan gradient header + icon - Role columns: badge dengan icon (crown untuk admin) - Checkbox: toggle button blue modern dengan ikon check - Hover: gradient biru tipis di baris + icon group berubah warna - Save section: gradient card dengan shadow - Transisi mulus semua interaksi --- .../views/settings/permissions.blade.php | 190 ++++++++++++------ 1 file changed, 134 insertions(+), 56 deletions(-) diff --git a/resources/views/settings/permissions.blade.php b/resources/views/settings/permissions.blade.php index 98b691e..e4e67a0 100644 --- a/resources/views/settings/permissions.blade.php +++ b/resources/views/settings/permissions.blade.php @@ -3,77 +3,155 @@ @section('title', 'Hak Akses Role') @section('content') -
+
+ {{-- Header --}}
-

Hak Akses Role

+

Hak Akses Role

Atur permission/fitur apa saja yang bisa diakses oleh setiap role pengguna.

@if (session('success')) -
{{ session('success') }}
+
+
+
+ +
+ {{ session('success') }} +
+
@endif
@csrf -
- - - - - @foreach ($roles as $role) - @php - $label = [ - 'admin' => 'Admin', - 'bk' => 'BK', - 'wali_kelas' => 'Wali Kelas', - 'staff' => 'Staff', - 'other' => 'Other (Guest)', - ][$role] ?? ucfirst($role); - @endphp - - @endforeach - - - - @foreach ($permissions as $group => $groupPermissions) - - - - @foreach ($groupPermissions as $perm) - - - @foreach ($roles as $role) +
+ @foreach ($permissions as $group => $groupPermissions) + @php + $groupLabels = [ + 'akses' => ['Akses Umum', 'fa-door-open', 'blue'], + 'pelanggaran' => ['Pelanggaran', 'fa-triangle-exclamation', 'red'], + 'data' => ['Data Master', 'fa-database', 'violet'], + 'presensi' => ['Presensi', 'fa-clipboard-check', 'emerald'], + 'master-data' => ['Master Data', 'fa-gear', 'slate'], + 'administrasi' => ['Administrasi', 'fa-shield-halved', 'amber'], + ]; + $gl = $groupLabels[$group] ?? [ucfirst($group), 'fa-circle', 'gray']; + @endphp +
+ {{-- Group header --}} +
+
+
+ +
+ {{ $gl[0] }} +
+
+ + {{-- Table --}} +
+
Permission{{ $label }}
- {{ $group === 'master-data' ? 'Master Data' : ($group === 'administrasi' ? 'Administrasi' : $group) }} -
-
{{ $perm->label }}
-
{{ $perm->key }}
-
+ + + + @foreach ($roles as $role) + @php + $roleLabels = [ + 'admin' => ['Admin', 'blue'], + 'bk' => ['BK', 'indigo'], + 'wali_kelas' => ['Wali Kelas', 'emerald'], + 'staff' => ['Staff', 'amber'], + 'other' => ['Guest', 'gray'], + ]; + $rl = $roleLabels[$role] ?? [ucfirst($role), 'gray']; + @endphp + + @endforeach + + + + @foreach ($groupPermissions as $perm) @php - $checked = in_array($perm->id, $rolePermissions[$role] ?? []); - $disabled = ($role === 'admin'); + $allChecked = true; + foreach ($roles as $role) { + if ($role !== 'admin' && !in_array($perm->id, $rolePermissions[$role] ?? [])) { + $allChecked = false; + break; + } + } @endphp - + + + @foreach ($roles as $role) + @php + $checked = in_array($perm->id, $rolePermissions[$role] ?? []); + $disabled = ($role === 'admin'); + @endphp + + @endforeach + @endforeach - - @endforeach - @endforeach - -
Permission +
+ @if($role === 'admin') + + @else + + @endif + {{ $rl[0] }} +
+
- -
+
+
+ +
+
+
{{ $perm->label }}
+
{{ $perm->key }}
+
+
+
+ @if($disabled) +
+ +
+ @else + + @endif +
+ + +
+
+ @endforeach
-
-

Role Admin selalu memiliki semua hak akses (tidak bisa diubah).

- + {{-- Bottom bar --}} +
+
+
+
+ +
+ Role Admin selalu memiliki semua hak akses (tidak bisa diubah). +
+ +