@php /** @var \Illuminate\Pagination\LengthAwarePaginator $news */ $pageTitle = 'Notícias'; $statusFilter = request()->input('status', ''); $searchTerm = request()->input('search', ''); $categoryFilter = request()->input('category_id', ''); $tagFilter = request()->input('tag_id', ''); $statusLabels = \V2\Modules\Publicacoes\Noticias\Models\News::$statusLabels; $statusColors = \V2\Modules\Publicacoes\Noticias\Models\News::$statusColors; $statusIcons = \V2\Modules\Publicacoes\Noticias\Models\News::$statusIcons; $validStatuses = \V2\Modules\Publicacoes\Noticias\Models\News::$validStatuses; $superHighlighted = isset($superHighlighted) ? $superHighlighted : null; $allPublished = isset($allPublished) ? $allPublished : collect(); @endphp @extends('v2-cms::layouts.app', [ 'title' => $pageTitle, ]) @section('page-breadcrumbs') @include('v2-cms::partials.breadcrumb', ['items' => [ ['label' => 'Publicações'], ['label' => 'Notícias'], ]]) @endsection @section('page-actions')
@include('v2-cms::partials.action-create', [ 'route' => route('v2.noticias.cms.create'), 'label' => 'Nova Notícia' ])
@endsection @section('css') @parent @include('v2-noticias::cms.includes.styles') @endsection @section('content')

{{ $news->total() }} registros encontrados

{{-- Stats Bar --}}
@foreach($validStatuses as $status) @php $isActive = ($statusFilter === $status); $color = $statusColors[$status]; $icon = $statusIcons[$status]; $label = $statusLabels[$status]; $count = isset($stats[$status]) ? $stats[$status] : 0; @endphp {{ $label }} {{ $count }} @endforeach @php $archivedCount = isset($stats['archived']) ? $stats['archived'] : 0; @endphp Arquivadas {{ $archivedCount }}
{{-- Filters --}} @component('v2-cms::partials.filter-card', [ 'searchPlaceholder' => 'Buscar por título, subtítulo ou resumo...', 'searchValue' => $searchTerm, 'action' => route('v2.noticias.cms.index'), 'showDateRange' => false, ])
@endcomponent {{-- Lista — Agrupada por categoria com fundos coloridos --}} @if($news->count() > 0) @php $grouped = $news->groupBy(function ($item) { return $item->category ? $item->category->name : 'Sem categoria'; }); $catColors = ['#f0f7ff','#f0fff4','#fff8f0','#fdf0ff','#f0ffff','#fff0f0','#f5f0ff','#f0fff8']; $colorIndex = 0; @endphp @foreach($grouped as $catName => $items) @php $bg = $catColors[$colorIndex % count($catColors)]; $colorIndex++; @endphp
{{ $catName }} {{ $items->count() }}
@foreach($items as $item)
@php $coverUrl = $item->getCoverImageUrl(); @endphp
@if($coverUrl) Capa da notícia @else
@endif
{{ $statusLabels[$item->status] }} @if($item->is_highlighted) @endif @if($item->is_super_highlighted) @endif
{{ $item->title }}
{{ $item->created_at->format('d/m/Y') }} @if($item->author) {{ $item->author->name ?? '—' }} @endif
@if($item->relationLoaded('tags') && $item->tags->count() > 0)
@foreach($item->tags->take(3) as $tag) {{ $tag->name }} @endforeach @if($item->tags->count() > 3) +{{ $item->tags->count() - 3 }} @endif
@endif @if($item->status === 'rejected' && $item->rejection_reason)
{{ \Illuminate\Support\Str::limit($item->rejection_reason, 60) }}
@endif
@if($item->status === 'published' && $item->getPublicUrl()) @endif @if($item->draft_token && $item->getPreviewUrl()) @endif
{{ csrf_field() }}
@php $archiveFormId = 'archive-form-' . $item->id; @endphp
{{ csrf_field() }} {{ method_field('DELETE') }}
@endforeach
@endforeach @if($news->hasPages())
{{ $news->appends(request()->except('page'))->links('v2-cms::partials.pagination') }}
@endif @else

Nenhuma notícia encontrada

@if(!empty($searchTerm) || !empty($statusFilter))

Tente ajustar os filtros ou limpar a busca.

Limpar Filtros @else

Comece criando a primeira notícia do portal.

Criar Primeira Notícia @endif
@endif @include('v2-noticias::cms.includes._confirm-modal') {{-- Modal Super-destaque --}} @endsection @push('scripts') @include('v2-noticias::cms.includes.scripts') @endpush