@use('Core\Localization\LocalizedDate') @php // Resumo dos filtros ativos (P5.6.S3): `status=todos` é o padrão e não conta como filtro. $activeFilters = []; if ($filters['q'] !== '') { $activeFilters[] = ['key' => 'q', 'label' => __('acesso::cms.search'), 'value' => $filters['q']]; } if ($filters['status'] !== 'todos') { $activeFilters[] = [ 'key' => 'status', 'label' => __('acesso::cms.filter_status'), 'value' => __('acesso::cms.filter_'.$filters['status']), ]; } $hasFilters = $activeFilters !== []; @endphp {{-- Usuários do painel (CMS): busca por nome/e-mail, filtro de situação, paginação nativa e ações de linha por `POST`. O módulo preenche **apenas** o conteúdo — shell, título da tela e estrutura são do layout (ADR-009/ADR-016). Ordenação determinística com desempate único (ADR-001); busca e filtros são `GET` (URL compartilhável) e a ordenação vigente é preservada no envio (P5.6.S3). --}} @if (session('status')) {{ session('status') }} @endif @if ($canEdit)
{{ __('acesso::cms.new') }}
@endif {{-- A ordenação vigente é parte da tela: filtrar não pode devolvê-la ao padrão. --}} @if ($direction === 'desc') @endif
@foreach ($users as $user) @if ($canEdit) {{ $user->name }} @else {{ $user->name }} @endif {{ $user->email }} {{ $user->role?->nome ?? __('acesso::cms.no_role') }} @if ($user->deactivated_at === null) {{ __('acesso::cms.status_active') }} @else {{ __('acesso::cms.status_inactive') }} @endif {{ LocalizedDate::short($user->created_at) }} @php($protectedIdentity = $user->isSupport() || (bool) ($user->role?->protegido ?? false)) @if ($canEdit) {{ __('acesso::cms.action_edit') }} @if (! $protectedIdentity || $actorIsSupport) @if ($user->deactivated_at === null) @else
@csrf {{ __('acesso::cms.action_activate') }}
@endif
@endif @endif
@endforeach