{{-- O RESULTADO DA BUSCA, ISOLADO DO RESTO DA PÁGINA. É um partial e não parte do index porque a busca ao vivo troca exatamente este pedaço: o live-search.js pede a mesma URL com o cabeçalho de AJAX, o controller devolve só este arquivo (sem layout) e o JS joga o HTML no lugar. Um trecho só, renderizado pelo mesmo Blade nos dois caminhos — a alternativa seria devolver JSON e remontar a tabela em JavaScript, o que duplicaria em JS toda a formatação que já existe aqui. TUDO O QUE MUDA COM O FILTRO PRECISA ESTAR AQUI DENTRO, inclusive a paginação: ela some quando a busca devolve uma página só, e se ficasse fora continuaria na tela apontando para resultados que não existem mais. --}}
| Arena | Documento | Usuários | Situação | Expira em | Cadastro | Ações |
|---|---|---|---|---|---|---|
|
{{ $organization->name }}
{{ $organization->email }}
|
{{ $organization->formattedDocument() }}
{{ $organization->document_type?->label() }}
|
{{ $organization->users_count }} | {{-- Situação como toggle: liga/desliga salva na hora. Não há payload — a intenção está na própria URL, então o form aponta para suspend ou reactivate conforme o estado atual, reaproveitando as rotas já usadas na tela de detalhe. O `data-confirm` só entra ao SUSPENDER, que é o lado destrutivo (derruba todos os usuários da arena). Reativar é inofensivo e vai direto. O envio fica a cargo de status-switch.js, não de um `onchange` inline: `form.submit()` nativo pula o modal de confirmação. Veja o módulo. --}}{{-- O vencido ganha destaque mas NÃO muda nada no acesso: nada bloqueia por expiração ainda. O badge é o aviso ao operador de que aquela arena precisa de renovação — evita que a coluna vire uma data que ninguém olha. --}} | {{ $organization->expires_at->format('d/m/Y') }} @if ($organization->hasExpired()) Vencida @endif | {{ $organization->created_at->format('d/m/Y') }} | {{-- AÇÕES SEMPRE VISÍVEIS ($inline), não no menu que abria ao passar o mouse: o gesto escondia as três ações da linha e não existe em toque nem no teclado. Mesma decisão já tomada em courts/index. O TOGGLE DE SITUAÇÃO CONTINUA FORA DAQUI. Ele é o ESTADO da arena, que a coluna existe para mostrar de relance na tabela inteira. "Visualizar" e "Administrar" vêm pelo slot $extra porque o partial só prevê editar e apagar — nas demais listagens não há tela de detalhe nem entrada de suporte, aqui há. Como feitio inline, usam a mesma classe de botão que o lápis e a lixeira, com o nome da arena no `aria-label` já que só o ícone aparece. O slot recebe uma VIEW renderizada e não uma string concatenada: "Administrar" é um POST com CSRF, e montar um formulário por concatenação é como o token acaba esquecido numa alteração. --}}@include('partials.row-actions', [ 'label' => $organization->name, 'inline' => true, 'editUrl' => route('platform.organizations.edit', $organization), 'deleteUrl' => route('platform.organizations.destroy', $organization), 'confirm' => 'Remover '.$organization->name.'? A arena sai da plataforma e todos os usuários dela perdem o acesso. Os dados são preservados e a remoção pode ser desfeita pelo suporte.', 'extra' => new Illuminate\Support\HtmlString( view('platform.organizations._row-extra', ['organization' => $organization])->render() ), ]) |
| Nenhuma arena encontrada. | ||||||
@if ($organizations->total() === 0) Nenhuma arena encontrada. @else {{-- Numa linha só de propósito: quebrar a frase no Blade insere quebras e indentação no meio do texto renderizado. --}} Mostrando {{ $organizations->firstItem() }}–{{ $organizations->lastItem() }} de {{ $organizations->total() }} {{ $organizations->total() === 1 ? 'arena' : 'arenas' }}. @endif
{{ $organizations->links() }}