@props(['title' => 'Dashboard'])
@use('App\Models\Setting')
@use('App\Support\Img')
@php
$u = auth()->user();
$acct = [];
if ($u->hasRole('Admin')) $acct[] = ['Overview', 'admin.dashboard', 'admin.dashboard', 'grid'];
if ($u->hasRole('Committee') && ! $u->hasRole('Admin')) $acct[] = ['My responsibilities', 'committee.dashboard', 'committee.dashboard', 'clip'];
if ($u->hasRole('Member')) {
$acct[] = ['My dashboard', 'member.dashboard', 'member.dashboard', 'home'];
$acct[] = ['My profile', 'member.profile.edit', 'member.profile.*', 'user'];
}
$manage = collect([
['Approvals', 'manage.approvals.index', 'manage.approvals.*', 'check', 'manage members'],
['Members', 'manage.members.index', 'manage.members.*', 'users', 'manage members'],
['Events', 'manage.events.index', 'manage.events.*', 'calendar', 'manage events'],
['Registrations', 'manage.registrations.index', 'manage.registrations.*', 'ticket', 'manage events'],
['Event gallery', 'manage.gallery.index', 'manage.gallery.*', 'image', 'manage events'],
['Achievements', 'manage.achievements.index', 'manage.achievements.*', 'trophy', 'manage achievements'],
['Homepage slider', 'manage.slider-images.index', 'manage.slider-images.*', 'slides', 'manage slider'],
['Alumni', 'manage.alumni.index', 'manage.alumni.*', 'cap', 'manage alumni'],
['Messages', 'manage.messages.index', 'manage.messages.*', 'mail', 'manage messages'],
])->filter(fn ($i) => $u->can($i[4]))->values()->all();
$admin = $u->hasRole('Admin') ? [
['Committees', 'manage.committees.index', 'manage.committees.*', 'shield'],
['Committee members', 'manage.committee-members.index', 'manage.committee-members.*', 'users'],
['Departments', 'manage.departments.index', 'manage.departments.*', 'building'],
['Site settings', 'manage.settings.edit', 'manage.settings.*', 'sliders'],
] : [];
$groups = ['Account' => $acct, 'Manage' => $manage, 'Administration' => $admin];
// small number badges in the sidebar
$badges = [];
if ($u->can('manage members')) $badges['manage.approvals.index'] = \App\Models\Member::where('status', 'pending')->count() + \App\Models\Payment::where('status', 'pending')->count();
if ($u->can('manage events')) $badges['manage.registrations.index'] = \App\Models\EventRegistration::where('status', 'pending')->count();
if ($u->can('manage messages')) $badges['manage.messages.index'] = \App\Models\ContactMessage::whereNull('read_at')->count();
$icons = [
'grid' => '
{{ $greet }}, {{ \Illuminate\Support\Str::before($u->name, ' ') }}