@extends('layouts.app') @section('title', 'Users') @push('stylesheets') @include('partials.filter-card-styles') @include('partials.index-datatable-styles') @endpush @section('contents') @php $authUser = auth()->user(); $authUser?->loadMissing('role'); $viewerIsMec = $authUser && strtolower((string) ($authUser->role?->slug ?? '')) === 'mec'; $viewerIsSuperAdmin = $authUser && $authUser->isSuperAdmin(); $userListHeaders = ['User', 'Email', 'Contact', 'Permission', 'Designation', 'Section']; $userListSortColumns = ['users.name', 'users.email', 'users.phone', 'permissions.name', 'designations.name', 'sections.name']; if ($viewerIsSuperAdmin) { $userListHeaders[] = 'Department'; $userListHeaders[] = 'Region'; $userListSortColumns[] = null; $userListSortColumns[] = null; } elseif ($viewerIsMec) { $userListHeaders[] = 'Region'; $userListSortColumns[] = null; } else { $userListHeaders[] = 'Department'; $userListSortColumns[] = null; } $userListHeaders = array_merge($userListHeaders, ['Role', 'Status', 'Created At']); $userListSortColumns = array_merge($userListSortColumns, ['roles.name', 'users.status', 'users.created_at']); $showDepartmentColumn = $viewerIsSuperAdmin || ! $viewerIsMec; $filterSections = $filterSections ?? []; $filterDesignations = $filterDesignations ?? []; $filterDepartments = $filterDepartments ?? []; $filterPermissions = $filterPermissions ?? []; @endphp @if (function_exists('is_mec_role') && is_mec_role()) @include('partials.collapsible-filter-styles') Search Name Email Contact Permission All Permissions @foreach ($filterPermissions as $permissionId => $permissionName) {{ $permissionName }} @endforeach Section All Sections @foreach ($filterSections as $sectionId => $sectionName) {{ $sectionName }} @endforeach Designation All Designations @foreach ($filterDesignations as $designationId => $designationName) {{ $designationName }} @endforeach @if ($showDepartmentColumn) Department All Departments @foreach ($filterDepartments as $departmentId => $departmentName) {{ $departmentName }} @endforeach @endif Status All Statuses Active Inactive Filter @else Search Name Email Contact Permission All Permissions @foreach ($filterPermissions as $permissionId => $permissionName) {{ $permissionName }} @endforeach Section All Sections @foreach ($filterSections as $sectionId => $sectionName) {{ $sectionName }} @endforeach Designation All Designations @foreach ($filterDesignations as $designationId => $designationName) {{ $designationName }} @endforeach @if ($showDepartmentColumn) Department All Departments @foreach ($filterDepartments as $departmentId => $departmentName) {{ $departmentName }} @endforeach @endif Status All Statuses Active Inactive Filter @endif @foreach ($users as $data) @php $profileImgUrl = user_profile_image_url($data->image ?? null); @endphp @if ($profileImgUrl !== '') @else @endif {{ $data->name ?? '-' }} {{ $data->email ?: '-' }} {{ $data->phone ?: '-' }} {{ $data->permission->name ?? '-' }} {{ $data->designation->name ?? '-' }} {{ $data->section->name ?? '-' }} @if ($viewerIsSuperAdmin) @include('users.partials.department-cell', ['departments' => $data->user_departments]) {{ $data->userMecRegions->pluck('name')->filter()->implode(', ') ?: '-' }} @elseif ($viewerIsMec) {{ $data->userMecRegions->pluck('name')->filter()->implode(', ') ?: '-' }} @else @include('users.partials.department-cell', ['departments' => $data->user_departments]) @endif @php $roleNames = collect($data->userRoles ?? []) ->map(fn ($m) => role_display_name($m->role->name ?? null)) ->filter() ->unique() ->values(); if ($roleNames->isEmpty()) { $roleNames = collect([role_display_name($data->role->name ?? null)])->filter(); } @endphp @forelse ($roleNames as $roleName) {{ $roleName }} @empty - @endforelse @if($data->status) Active @else Inactive @endif {{ $data->created_at->format('d M Y') }} @endforeach @endsection @push('scripts') @include('partials.index-datatable-scripts') @include('partials.collapsible-filter-scripts') @endpush